【发布时间】:2017-09-14 22:12:25
【问题描述】:
我正在为我的 CS202 课程做一个项目。我提供了一个名为data.dat 的未知大小的二进制文件,需要从文件中读取整数(我事先不知道)并将它们存储在适当大小的向量中。我必须将fstream() 用于文件流,我必须使用reinterpret_cast<char *>() 进行转换。我的代码如下所示:
fstream filestream2;
//reading binary data from supplied data.dat file
filestream2.open("data.dat", ios::in | ios::binary);
vector<int> v;
filestream2.seekg(0, filestream2.end);
long length = filestream2.tellg();
v.resize(length);
filestream2.read(reinterpret_cast<char *>(&v[0]), length);
for(int num = 0; num < length; num++)
{
cout << v[num] << " ";
}
理论上,向量应该保存文件中的所有整数并将它们打印到标准输出,但我的输出只是大约 50,000,0 后跟program exited with exit code 0
我对 C++ 语法和库还比较陌生,我只是无法弄清楚我一生做错了什么。
提前致谢。
【问题讨论】:
标签: c++ c++11 fstream binaryfiles stdvector