【发布时间】:2016-02-09 07:24:07
【问题描述】:
此代码预计会计算用户输入的字符,除了'\n',预计'\n' 在其他'\n' 之后。稍后我会解释。
#include <stdio.h>
int main () {
int numberOfChars = 0;
do {
while(getchar() != '\n')
numberOfChars++;
} while(getchar() != EOF && numberOfChars++);
printf("Number of chars = %d\n", numberOfChars);
return 0;
}
这里有一些例子:
输入: A、B、C、Ctrl + D
预期输出:3
实际输出:程序没有终止,屏幕上显示123^D。
输入: A、B、C、回车, Ctrl + D
预期输出:3
实际输出:3
输入: A、B、C、输入、A、B、C , Enter, Ctrl + D
预期输出:6
实际输出:6
输入: A、B、C、回车、回车、Ctrl + D
预期输出:4
实际输出:程序没有终止,屏幕上显示:
abc
^D
我使用的是 OS X-10.10.5、bash-3.2 和 clang-700.1.81。
提前致谢。
【问题讨论】: