使用C ++读取文件时跳过EOF

时间:2012-10-18 21:17:29

标签: c++ file-io eof getline

每当我使用getline()在C ++中读取文件时遇到替换字符http://en.wikipedia.org/wiki/Substitute_character时,它会被解释为EOF,因此我无法使用我的阅读来获取文件的全部内容。所以我的问题是,如何跳过替换字符并读取文件内容直到“真正的”EOF?

1 个答案:

答案 0 :(得分:6)

以二进制模式而不是文本模式打开文件。如果您使用的是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);