其他分享
首页 > 其他分享> > c – ifstream :: read在ASCII 26处失败

c – ifstream :: read在ASCII 26处失败

作者:互联网

这个问题长期困扰着我.例如,代码

ifstream in;
char temp;
int a;

in.open ("Random.txt");

for (a = 0;a < 10000;a++)
    in.read (&temp, 1);

in.close ();

工作正常,直到ifstream遇到替换字符(ASCII = 26).然后,对于所有后续字符,ifstream :: read给我temp = -1.我真的不希望这种情况发生,而是希望它继续从文件中读取字符而不是-1.我做错了什么?

解决方法:

您需要以二进制模式打开流.由于历史原因,Windows上的文本模式会将Control-Z(ASCII 26)视为文件的结尾.

还有更多细节in this earlier answer of mine.

标签:visual-c-2010,c,visual-c,visual-studio-2010,ascii
来源: https://codeday.me/bug/20190723/1512578.html