gpt4 book ai didi

c++ - 编辑文本文件

转载 作者:行者123 更新时间:2023-11-30 02:45:26 25 4
gpt4 key购买 nike

我想编辑一个文本文件,但我一直在寻找正确的函数或方法来完成这项工作。到目前为止,我能够打开一个文本文件并查找某个字符串,但我不知道如何移动光标、添加或替换信息,如下所示的伪代码中的步骤 4 - 7。

您能提供一些指导吗?我应该使用哪些功能(如果它们已经存在)?示例“简单”代码也将不胜感激。

Pseudocode:

1. Open file.
2. While not eof
3. Read file until string "someString" is found.
4. Position the cursor at the next line (to where the someString was found).
5. If "someString" = A go to step 6. Else go to step 7.
6. Replace the information in whole line with "newString". Go to step 8.
7. Add new information "newString_2", without deleting the existing.
8. Save and close the text file.

谢谢。

最佳答案

我建议将 getline 命令放入 while 循环,因为这样它不会仅仅因为 EOF 而停止,而是当 getline 无法再读取时。就像发生错误 bad 时(当有人在您的程序读取文件时删除文件时发生)。

您似乎想在字符串中搜索,因此“查找”可能会很有帮助。

#include <iostream>
#include <fstream>
#include <string>

int main (){
std::fstream yourfile;
std::string line, someString;

yourfile.open("file.txt", ios::in | ios::app); //The path to your file goes here

if (yourfile.is_open()){ //You don't have to ask if the file is open but it's more secure
while (getline(line)){
if(line.find(someString) != string::npos){ //the find() documentation might be helpful if you don't understand
if(someString == "A"){
//code for replacing the line
}
else{
yourfile << "newString_2" << endl;
}
} //end if
} //end while
} //end if
else cerr << "Your file couldn't be opened";

yourfile.close();
return 0;
}

我无法告诉您如何替换文本文件中的一行,但我希望您能使用我能提供的一点点知识。

关于c++ - 编辑文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24434722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com