C++11: istream.get() останавливается на EOMC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C++11: istream.get() останавливается на EOM

Сообщение Anonymous »

У меня проблема с входными потоками C++ (C++11), в частности с файловыми потоками. После того, как я открою новый поток с этим:

Код: Выделить всё

ifstream stream;
stream.open("C:\somefile.txt");
И когда я пытаюсь прочитать из него, и операция чтения встречает байт EOM (0x19), поток устанавливается на badbit, а это не то, что мне нужно. Я хочу читать до определенного конца файла. Вот как я читаю

Код: Выделить всё

char buffer[8];
stream.read(buffer, 8);
а потом я проверяю вот так:

Код: Выделить всё

if(stream.fail()) return -1;
Как я могу читать из потока, не останавливаясь на EOM-байтах (или равных им)?

Подробнее здесь: https://stackoverflow.com/questions/272 ... ops-on-eom
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»