这对我来说毫无意义,但希望你们中的一个人理解它为什么这样做。
我有一个作业需要使用 getchar() 读取三个字符,因为三个相邻的整数彼此相关,所以我设置了一个循环结构如下:
int c1, c2, c3 = 0;
while(c3 != EOF) {
c1 = getchar();
c2 = getchar();
c3 = getchar();
... do something with them...
}
问题是如果字符的数量不能被三整除,最后的迭代就不会执行。因此,如果输入字符“Abcd”,它将在 Abc 上执行第一次迭代,但第二次迭代不会对 D 执行任何操作。“Abcde”也是如此,但 Abcdef 会起作用。
这是一个家庭作业,所以不要为我解决这个问题,但是如果没有找到那么多字符,它只是终止循环,这对于 getchar 是否有些奇怪?