例如123.txt文件内容如下:(每个字节用8位2进制表示)
10010011,11111111,01011010
就是只有三个字符的文件。
fstream fin("123.txt");
while((ch=fin.get())!=EOF)
{
执行部分
}
读入第二个字符就不读了,原因:11111111=-1
所以ch=-1
EOF=-1就这么无耻的停了,我是要读到文件末尾啊
10010011,11111111,01011010
就是只有三个字符的文件。
fstream fin("123.txt");
while((ch=fin.get())!=EOF)
{
执行部分
}
读入第二个字符就不读了,原因:11111111=-1
所以ch=-1
EOF=-1就这么无耻的停了,我是要读到文件末尾啊
你可以
FILE* fp = fopen("xxx", "wb");
if (fp)
while (! feof(fp)){
fgetc(fp);
}
英文ASCII码最高位是0,不会产生11111111
读入CHAR不会产生-1
但是我的文件里面会出现11111111这种字符,
while(!fin.eof())
{
执行部分
}
while((ch=fin.get())!=EOF)
你这样相当于
while(ch!=EOF)