请教for和while的一个问题
从文本文件中顺序读出字符,使用了for和while两种方法,编译环境为Cygwin/GNU CC 3.4.4(1) 采用while
FILE * file_p;
int ch;
fread (&ch, sizeof (char), 1, file_p);
...
while (ch != EOF)
{
/* 读取下一个字符 */
fread (&ch, sizeof (char), 1, file_p);
...
}
(2)采用for
FILE * file_p;
int ch;
fread (&ch, sizeof (char), 1, file_p);
...
for (fread (&ch, sizeof (char), 1, file_p); ch != EOF; fread (&ch, sizeof (char), 1, file_p))
{
...
}
while实现一切OK,for实现发现问题。比如文件的最后一个有效字符为‘N’,ch总是为'N',而读不出EOF。
请问为什么啊?