Я пытаюсь интерпретировать двоичный файл как последовательность целых чисел и считывать значения в вектор. Однако строка ifs >> n; всегда возвращает 0, а eof всегда ложно, позиция файла не обновляется. Если я изменяю тип на char, он работает, но это не то, чего я хочу достичь. Как я могу заставить код работать так, как я хочу?
int readAsNumber(const char* fileName, vector <int> &content)
{
ifstream ifs;
int n;
ifs.open(fileName, ifstream::in | ifstream::binary);
while (ifs.eof() == false) // Never terminates
{
ifs >> n; // Always sets n = 0
content.push_back(n); // Saves 0
}
ifs.close();
return 0;
}