替换文本文件中的一行

新手上路,请多包涵

我想替换文件中的一行文本,但我不知道执行此操作的函数。

我有这个:

 ofstream outfile("text.txt");
ifstream infile("text.txt");

infile >> replace with other text;

对此有什么答案吗?

我想说的是,在文件的某行中添加文本…

例子

infile.add(text, line);

C++ 有这方面的功能吗?

原文由 Warkanlock 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
1 个回答

恐怕您可能不得不重写整个文件。您可以这样做:

 #include <iostream>
#include <fstream>

using namespace std;

int main()
{
    string strReplace = "HELLO";
    string strNew = "GOODBYE";
    ifstream filein("filein.txt"); //File to read from
    ofstream fileout("fileout.txt"); //Temporary file
    if(!filein || !fileout)
    {
        cout << "Error opening files!" << endl;
        return 1;
    }

    string strTemp;
    //bool found = false;
    while(filein >> strTemp)
    {
        if(strTemp == strReplace){
            strTemp = strNew;
            //found = true;
        }
        strTemp += "\n";
        fileout << strTemp;
        //if(found) break;
    }
    return 0;
}

输入文件:

 ONE
TWO
THREE
HELLO
SEVEN

输出文件:

 ONE
TWO
THREE
GOODBYE
SEVEN

如果您只想替换第一次出现的注释行,只需取消注释。另外,我忘了,最后添加删除filein.txt并将fileout.txt重命名为filein.txt的代码。

原文由 Anton 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题