【发布时间】:2015-07-12 11:11:10
【问题描述】:
我正在尝试从文件中读取和写入一系列 int 对。该文件看起来像这样:
0 6
12 24
48 33
23 24
80 79
我的目标是将每一对读入一个结构:
struct foo {
int a;
int b;
}
然后将每个结构压入堆栈。然而,事实证明,fstreams 很难处理这个任务。现在,我的文件读取代码如下所示:
std::fstream fileStream(file, std::ios::in);
int a, b;
while (fileStream >> a >> b) {
myStack.push({ a, b });
}
我的输入可能看起来像这样(我必须单独完成,因为我正在使用它......):
inputFoo(foo bar) {
std::fstream fileStream(file, std::ios::out);
fileStream << bar.a << " " << bar.b;
}
但是,我觉得这不是我应该有效和安全地执行此操作的方式。我还有一个检查文件是否已经存在的函数,但我不确定它是否有效:
bool fileExists() {
std::ifstream stream;
return stream.good();
}
真正做到这一点的最佳方法是什么?
【问题讨论】:
-
我会使用 ifstream 和 ofstream 而不是 fstream
-
如果性能有问题,文件是否存在:stackoverflow.com/questions/12774207/…
标签: c++ file input stream output