区分 EOF 和 Getchar() 函数的错误
Distinguish EOF from error for the Getchar () function
重写程序,区分EOF和Getchar()函数的错误。也就是说,getchar()returns既是在error的过程中,也是在EOF文件的末尾,你需要区分这一点,输入不应该是通过FILE STREAM和handle putchar() function errors.
#include <stdio.h>
int main() {
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf ("%ld\n", nc);
}
您可以检查 feof()
or ferror()
(或两者)的 return 值,使用 stdin
作为 FILE*
参数:
#include <stdio.h>
int main() {
long nc;
nc = 0;
while (getchar() != EOF) ++nc;
printf ("%ld\n", nc);
if (feof(stdin)) printf("End-of file detected\n");
else if (ferror(stdin)) printf("Input error detected\n");
// Note: One or other of the above tests will be true, so you could just have:
// else printf("Input error detected\n"); // ... in place of the second.
}
重写程序,区分EOF和Getchar()函数的错误。也就是说,getchar()returns既是在error的过程中,也是在EOF文件的末尾,你需要区分这一点,输入不应该是通过FILE STREAM和handle putchar() function errors.
#include <stdio.h>
int main() {
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf ("%ld\n", nc);
}
您可以检查 feof()
or ferror()
(或两者)的 return 值,使用 stdin
作为 FILE*
参数:
#include <stdio.h>
int main() {
long nc;
nc = 0;
while (getchar() != EOF) ++nc;
printf ("%ld\n", nc);
if (feof(stdin)) printf("End-of file detected\n");
else if (ferror(stdin)) printf("Input error detected\n");
// Note: One or other of the above tests will be true, so you could just have:
// else printf("Input error detected\n"); // ... in place of the second.
}