【发布时间】:2015-12-26 10:42:32
【问题描述】:
我有一个包含 65536 个整数的文本文件。我正在编写下面给出的 C++ 程序来读取此文件。但它不能正常工作。它适用于具有少量整数的文本文件。但对于大文件无法正常工作。
#include(iostream)
#include(fstream)
using namespace std;
int main() {
ifstream myReadFile;
myReadFile.open("FileName.txt");
char output[1000];
if (myReadFile.is_open()) {
while (!myReadFile.eof()) {
myReadFile >> output;
cout<<output;
}
}
myReadFile.close();
system("pause");
return 0;
}
请提出解决方案。
【问题讨论】:
-
明明是C++的,为什么还要给这个C加标签?请不要添加虚假的语言标签。
-
该代码可以编译吗?那是实际的代码吗?
-
编译所有警告和调试信息,然后使用调试器。而今天 65536 行是一个 small 文件(一个 large 文件会有几十 GB)
-
为什么不一次读取一个整数?只需将输出声明为整数即可。
-
不要不在
char数组中使用格式化输入而不设置流的width()!它会导致潜在的缓冲区溢出。 总是在使用stream >> array之前设置width(),例如,使用myReadFile >> std::setw(sizeof(output)) >> output。
标签: c++ visual-c++ text read-write