假设这个while
循环:
while ((c = getchar()) != EOF)
^^^^^^^^^^^^^
assignment
正如您所看到的,我们要将作业与EOF
进行比较,它是如何发生的?据我所知,赋值不会返回任何值,因此您无法比较赋值(对吗?)
答案 0 :(得分:3)
分配的表达式返回赋值,在while ((c = getchar()) != EOF)
的情况下,您正在比较标准输入中的下一个字符({{ 1}}使用getchar()
返回 - 这是指定的值。
答案 1 :(得分:0)
每当我们调用getchar()时,它会读取输入的下一个字符并将其返回给您。该函数返回一个int,它是相关字符的ASCII代码,但如果需要,可以将结果赋值给char变量。 因此,通过这种方式,变量c得到的值最终与EOF相比。这个循环将一直运行,直到文件到达它的结束。