while循环里的输出语句执行了两次

时间:2022-10-16 22:55:00

代码如下:

#include<stdio.h>
int main()
{
char capital,lowercase;
printf("请输入大写字母!\n");
capital=getchar();
while(capital<65||capital>90)
{
printf("输入错误,请重新输入!\n");
capital=getchar();
}
lowercase=capital+32;
putchar(lowercase);
return 0;
}

结果如下:

while循环里的输出语句执行了两次

很明显,while循环里的printf语句执行了两次,这依然是我第一篇文章说的scanf缓冲区残留问题导致的。

文章链接:https://blog.51cto.com/u_15826798/5751702

解决方法:

1. 将capital=getchar();改为capital=getch();注意加上conio.h头文件。

2. 将capital=getchar();改为scanf(“ %c”,&capital);注意在%c前加一个空格。