Пропустить EOF при чтении файла в C++
Всякий раз, когда я сталкиваюсь с заменяющим символом http://en.wikipedia.org/wiki/Substitute_character при чтении файла в C++ с использованием getline(), он интерпретируется как EOF, поэтому я не могу перейти к чтению, чтобы получить файл целиком содержание. Итак, мой вопрос, как я могу пропустить замену символов и прочитать содержимое файла до "реального" EOF?
1 ответ
Решение
Откройте файл в двоичном режиме вместо текстового режима. Если вы используете fopen
открой его в одном из "b"
режимы, например "rb"
, Если вы используете C++ ifstream
объект, откройте его с помощью ios::binary
флаг.
Например:
// C method
FILE *f = fopen("filename", "rb");
// C++ method
std::ifstream f("filename", std::ios::in | std::ios::binary);