所以我有这样的代码:
#include <stdio.h>
/* copy input to output; 2nd version */
main() {
int c;
while ((c = getchar()) != EOF) {
putchar(c);
}
}
我想做的是回答这个问题:"验证表达式getchar() != EOF是0或1。">
我想这样做,但它没有工作:
#include <stdio.h>
/* copy input to output; 2nd version */
main() {
int c;
int a;
int a = while ((c = getchar()) != EOF) {
putchar(c);
}
printf("%d", a);
}
我该如何回答这个问题?/得到表达式的值(getchar() != EOF)到一个整数,所以我可以看到它?
编辑:因此,因为程序运行,它意味着值是1 (true),根据我。
要验证getchar() != EOF
是0还是1,您可以简单地打印它:
printf("%dn", getchar() != EOF);
或者,您可以记录该值并在程序中进行测试:
int v = getchar() != EOF;
if (v == 0 || v == 1)
printf("getchar() != EOF is 0 or 1.n");
else
printf("getchar() != EOF is not 0 or 1.n");
如果您想同时验证值为0或1,并使用getchar
的结果,则必须同时记录:
while (1)
{
int c;
int v = (c = getchar()) != EOF;
if (v == 0 || v == 1)
printf("getchar() != EOF is 0 or 1.n");
else
printf("getchar() != EOF is not 0 or 1.n");
if (!v)
break;
putchar(c);
}