我正在为CS202类工作。我有一个名为data.dat
的未知大小的提供二进制文件,需要从文件中读取整数(我不知道该文件的大小),并将它们存储在适当大小的矢量中。我必须使用fstream()
作为文件流,我必须使用reinterpret_cast<char *>()
进行转换。我的代码如下所示:使用fstream从二进制文件读取并将结果存储在向量中
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,其次是program exited with exit code 0
0我是比较新的C++语法和库,我只是无法弄清楚我为我的生活做错了什么。 在此先感谢。