第1个回答 2013-01-13
理论上是这样,但实践中由于getchar函数要遇到回车符才开始真正读输入缓冲区。因此对于\n而言,目的是容易达到的,但对于后者按了a键时并不响应,也要等到回车符才往下运行。
不过在回车符后仍然检测到其中回车符前的任一个字符a就退出循环。
测试代码:
#include <stdio.h>
int main(int argc, char **argv)
{
char SWITCH;
int c, i=0;
if(argc==1)
{
SWITCH = '\n';
}
else
{
if(argv[1][0] == 'n') SWITCH='\n';
else SWITCH=argv[1][0];
}
while((c=getchar()) != SWITCH)
{
printf("%d\n", i++);
}
}本回答被网友采纳