Я работаю над проектом для своего класса 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++, и я просто не могу понять, что я я делаю неправильно для жизни меня. Заранее спасибо.