1

我知道这里有人问过这个问题, 但我没有找到我要找的东西。我目前能找到的最佳答案显示了如何向文本文件添加内容。

我如何使用 fstream 来读取文本文件中的最后一个数字并读取最后一个字符串?

或者,我怎么能简单地替换文件中的某一行?例如:

该文件将是:

Line 1:NAME

Line 2:4

并且代码将读取第 1 行,并将其分配给一个字符串,然后更改它,与第二行相同

4

2 回答 2

1

将文件视为存储在磁盘上的向量。如果您想在该文件中插入某些内容,则必须将所有内容移到该文件中,以便为新行腾出空间。同样,找到一行也没有什么魔法,无需逐行遍历文件并为您的平台找到结束行字符。

在大多数代码中,处理此类事情的方式是将整个文件加载到内存中,然后在那里进行修改,然后将整个文件写回。

于 2013-06-05T23:39:07.033 回答
0

如果您确切知道每行有多少个字段以及多少行,这将帮助您创建一个 while 循环,将字段分配给向量或数组并相应地提取值。然后按照 Joel 的建议,打开文件以写入并用新数据替换内容。

代码:

#include <fstream>
#include <vector>
#include <string.h> //or <string> depending on you IDE, i use Xcode

using namespace std;

int main () {

   vector <string> a;
   vector <string> b;
   string field1;
   string field2;

   ifstream data;

   data.open("data.txt");

    if (data.fail()) {
        cerr << "Error Opening File!" <<endl;
        exit(1);
    }

    while (data >> field1 >> field2) {
    a.push_back(field1);
    b.push_back(field2);
    }

    data.close();

    return 0;
}

这就是你读入它的方式,向量 a 保存字段 1,向量 b 保存字段 2,这意味着下一个索引“1”将保存下一行值 (line2)。

于 2013-06-06T00:07:35.393 回答