如何用C ++中的新数字替换文本文件中特定字符串旁边的数字?

时间:2018-03-24 02:38:18

标签: string c++11 replace find file-handling

我有一个文本文件,其中包含某些文本行(单词,空格,特殊字符和整数的组合)。

文本文件的示例表示为

   <in line8> the quick brown fox) 8)
   <in line15> lazy dog jumps over) 7)
   <in line22> jumps over quick brown) 13)

我想找到并用新数字替换唯一字符串旁边的数字。

准确地说,我想用新号码替换第一行中字符串 fox)旁边的数字 8

同样,第二行中带有 7 字符串 7 的数字,带有新数字等。

当我们替换数字时,文本的非数字元素(数字前的单词,空格和特殊字符)应保持不受干扰

我到目前为止尝试的代码如下:

int main()
{
    string strReplace = "the quick brown fox) 8)"; //Original string
    string strNew = "the quick brown fox) 13)"; //Replaced string
    ifstream filein("input.txt"); //File to read from
    ofstream fileout("output.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;
}

我知道这可以用像Python这样的语言轻松实现。但在C ++中,它看起来相当棘手。有人可以帮忙吗?

0 个答案:

没有答案