为什么没有"*"在输出?输入为:中的(回车键)
#include<stdio.h>
int main(void){
char ch;
while ((ch=getchar( ))== 'e')
printf(" * ");
return 0;
}
我想知道abcd'n'将存储在缓冲区中,当我点击回车键,和getchar()将不断读取它,直到捕获字符'e'并打印"*">
输入"abcde",没有"*"因为while循环从标准输入中逐字符读取,而读取的字符等于字符'e'
。一旦输入与'e'
不同的字符,循环就会中断。因为你的输入是"abcde"在while循环的第一次迭代中,变量ch
等于'a'
,条件ch == 'e'
等于false
,之后循环中断。while循环和下面这个循环是一样的
while (1){
ch = getchar();
if (ch != 'e') break;
printf(" * ");
}
输入"abcd"getchar()返回的第一个值是什么,循环会发生什么?