我有一个文本文件,其中包含某些文本行(单词,空格,特殊字符和整数的组合)。
文本文件的示例表示为:
<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 ++中,它看起来相当棘手。有人可以帮忙吗?