我正在构建一个小应用程序。在这里我已经在txt文件中保存了一些数据。我需要编辑特定行和列的值。我写了一个代码去特定的行并获取值但我已经尝试了几乎所有的东西来获得一个特定的列并编辑该值。
1000 400 120 110 800 110 150 500 0 1000 1000 400 90 150 800 120 150 600 0 1000 1000 400 80 60 **800** 132 150 700 0 1000 1000 400 120 60 800 123 150 200 0 1000 1000 400 111 80 800 143 150 700 0 1000 1000 400 30 90 800 155 150 500 0 1000
例如我编辑了突出显示的值,这是最好的方法。我不能粘贴我的整个代码,因为它很长。 这是我可以去特定行的那个
fstream& GotoLine(int num) {
infile.seekg(std::ios::beg);
for (int i = 0; i < num - 1; ++i) {
infile.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
return infile;
}
我将不胜感激任何帮助。
答案 0 :(得分:1)
假设您的文件格式为固定列大小,我的建议是:
struct { size_t pos; size_t width}
的数组或向量以定义字段ios::in | ios::out
模式GotoLine
功能一次一行地读取文件,直至您要处理的行tellg
istream::getline
seekp
这是不编辑文本文件的一般方法。它只能在这里工作,因为因为你有固定大小的字段所编辑的行与原始行的大小完全相同,所以它可以重新编写到位。但从不在一般情况下使用它。