新人发问,为什么用while ((ch = getchar()) != '\n')语句时候,不用scanf输入啦呀
#include <stdio.h>int main()
{
int ch;
printf("请输入一行英文句子:");
while ((ch = getchar()) != '\n')
{
if (ch>='A' && ch<='Z')
{
ch = ch + 32;
}
else if(ch>='a' && ch<='z')
{
ch = ch - 32;
}
putchar(ch);
}
putchar('\n');
return 0;
} 帮你顶~ 一般正常的话不是 printf("请输入一行英文句子:");的下一行要加上scanf(“”,&&)输入吗,怎么有了while就不加啦 Twilight6 发表于 2020-6-6 20:15
帮你顶~
那谢谢你呦 赵嘉琦 发表于 2020-6-6 20:18
那谢谢你呦
可惜我没学C不然铁定帮你一起解决问题{:10_297:} 赵嘉琦 发表于 2020-6-6 20:15
一般正常的话不是 printf("请输入一行英文句子:");的下一行要加上scanf(“”,&&)输入吗,怎么有了whi ...
因为只要不输入换行符(按下回车),就会一直getchar. qiuyouzhi 发表于 2020-6-6 20:19
因为只要不输入换行符(按下回车),就会一直getchar.
所以是不是跟while没关系,只要我有 getchar()) != '\n'就能自动得到一行文字 赵嘉琦 发表于 2020-6-6 20:22
所以是不是跟while没关系,只要我有 getchar()) != '\n'就能自动得到一行文字
不是,是一个字符
必须要用到while qiuyouzhi 发表于 2020-6-6 20:19
因为只要不输入换行符(按下回车),就会一直getchar.
明白啦谢谢大佬 {:10_275:} 笑叹, 发表于 2020-6-8 22:19
你个混贼~ 领取渔币 scanf和getchar貌似都是从键盘缓冲区调取的,比如你输入了fishc,即用了getchar又用了scanf的话。getchar会先取走f,这个时候键盘缓冲区还剩下ishc和换行符了,scanf就取不到f了,当然只是我个人理解,我也是初学的 潜水小蓝人 发表于 2020-6-12 16:40
scanf和getchar貌似都是从键盘缓冲区调取的,比如你输入了fishc,即用了getchar又用了scanf的话。getchar会 ...
{:5_110:}棒诶
页:
[1]