【发布时间】:2015-01-06 21:11:36
【问题描述】:
在测试我的代码时,我遇到了一个问题,即当更多数据写入其文件时,ifstream 不会得到更新。所以这里是一个演示问题的示例代码:
ifstream is(filename);
string line;
while (getline(is, line))
cout << "line: " << line << endl;
ofstream os(filename, ofstream::out | ofstream::app);
string additional("additional");
os << additional;
os.flush();
while (getline(is, line))
cout << "line additional: " << line << endl;
没有额外的行被写入stdout,尽管它们被写入文件。
我没有使用 fstream 而不是几个 if/ofstream,因为我需要它来进行测试。
如何让ifstream“看到”文件中的变化?
更新:我使用clear 方法清除了这些位。它在我的带有 gcc 的 Ubuntu 机器上运行良好。但它不适用于我的带有 llvm 的 Mac OSX。你知道如何独立做平台吗?
【问题讨论】: