我试图编写一个程序,用其中的单词替换特定的行,或者如果行不存在于文件中,它应该添加它。有点像键值存储
我尝试了下面的代码,不幸的是没有结果。要么他只是覆盖了文件并删除了其他行,要么他根本没有写任何东西。最后,这段代码保留了下来。我知道这是低效和令人困惑的,但也许你可以帮助我。
! !目前,他没有向文件写入任何内容!!
代码:
void edit(char*key, char*value){
ifstream filein("test.txt");
ofstream fileout("tempTest.txt");
if(!filein || !fileout)
{
cout << "Error opening files!" << endl;
return;
}
bool found = false;
string line;
while(getline(filein, line))
{
if(line.find(key) == 0)
{
fileout << key << "=" << value << endl;
found = true;
}
else
{
fileout << line << endl;
}
if(!found)
{
fileout << key << "=" << value << endl;
}
}
filein.close();
fileout.close();
remove("test.txt");
}
在你的while
循环中,你继续写
fileout << key << "=" << value << endl;
,直到找到键为止。
那一行应该在循环之外。