我刚刚开始自己学习编程(C)作为一种爱好。我正在使用 K&R。
main()
{
int c;
while ((c = getchar()) != EOF)
putchar(c);
}
验证 getchar() != EOF 是否为 0 或 1
我想我明白发生了什么:
- c 被分配到键盘的下一个字符
- c 检查是否为EOF
- c 被赋值为 1 或 0,这取决于它是否为 EOF。
- 字符显示在输出上,或者如果 EOF 结束程序。
但是,我的解决方案是错误的,所以很明显我不明白一些事情:
main ()
{
int c;
while ((c = getchar()) != EOF)
printf("%d\n", c);
}
这只是打印字符的值。如果我按回车键,还会打印“10”。
我以为它会打印c。但是,它打印的是字符的值而不是 1 或 0 值。
我知道在将 c 与 EOF 进行比较后,它被分配了 1 或 0。但我不确定我可以用什么逻辑来展示这一点。看来我需要以某种方式“摆脱”显示字符值,而是显示比较值。这是否意味着我需要退出 while 循环?如果是这样,我不知道如何(这只是一个猜测)。
我怎样才能简单地验证 c = 1 或 0?
还有,我怎么知道这个?我想,我应该从中学到一些基本的东西。
main ()
{
int c;
while ((c = getchar()) != EOF != 0 != 1)
putchar(c);
}
我也这样做了,我认为这似乎有效。因为它不输出任何字符,但我不确定这是否是他们正在寻找的解决方案......