Lyf593593593
2021-11-25 23:02
采纳率: 50%
浏览 10

关于while语句的一个问题

想知道while语句的具体运行方式
比如

#include<stdio.h>
int main(){
char a;
int n=0;
scanf("%c",&a);
while(a!='\n'){
if(a<='z'&&a>='a'){
a=a-32;
}
if(a=='A'||a=='E'||a=='I'||a=='O'||a=='U'){
n++;
}
printf("%c",a);
scanf("%c",&a);
}
printf("\n%d",n);
return 0;
}

为什么在输入字母后不会立即执行print,而是在输入\n后一起执行print
不会出现输入一个字母就立刻输出一个字母,而是在输入完所有字母后输出类似字符串的效果?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 爱上bug的小姐姐 2021-11-26 01:00

    在键盘上输入后字母只是有缓存,只有enter键后才输入内存,这样”赋值“才算完成,scanf语句结束。
    输入的时候可以输入字符串,但是enter键后只有最前面的字符被送进内存。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题