4
每当我在使用getline()读取C++中的文件时遇到替代字符http://en.wikipedia.org/wiki/Substitute_character时,它将被解释为EOF,因此无法通过阅读来提前获取文件的全部内容。所以我的问题是,我如何跳过替代字符并读取文件的内容,直到“真正的”EOF?使用C++读取文件时跳过EOF
每当我在使用getline()读取C++中的文件时遇到替代字符http://en.wikipedia.org/wiki/Substitute_character时,它将被解释为EOF,因此无法通过阅读来提前获取文件的全部内容。所以我的问题是,我如何跳过替代字符并读取文件的内容,直到“真正的”EOF?使用C++读取文件时跳过EOF
以二进制模式而不是文本模式打开文件。如果您使用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);
有没有必要'的std :: IOS :: in'在'ifstream',出于显而易见的原因... –