这个编程在哪个地方自动输入了错误字符,是回车键吗?
c语言吧
全部回复
仅看楼主
level 11
anteaterwong 楼主
#include<stdio.h>
#include<stdlib.h>
//英文字母大小写转换
void main()
{
char ch;
start1:printf("\n请输入一个英文字母:");
start2:ch = getchar();//获取一个字符输入
printf("\n所输入的字符是%c,", ch);//确认输入的字符
if (ch >= 65 && ch <= 90)//A'的编号是65,'Z'的编号90
{
printf("其小写是%c。", ch + 32);
goto start1;
}
else if (ch >= 97 && ch <= 122)//'a'的编号97,'z'的编号是122
{
printf("其大写是%c。", ch - 32);
goto start1;
}
else
{
printf("输入错误。请重新输入一个英文字母:");
goto start2;
}
system("pause");
}
2021年07月05日 13点07分 1
level 11
anteaterwong 楼主
2021年07月05日 13点07分 2
level 8
输入缓冲区问题
2021年07月06日 10点07分 3
谢谢, 已解决 while(getchar()!='\n');
2021年07月25日 10点07分
level 3
#include<stdio.h>
#include<stdlib.h>
//英文字母大小写转换
void main()
{
char ch;
printf("\n请输入一个英文字母:");
ch = getchar();//获取一个字符输入
printf("\n所输入的字符是%c,", ch);//确认输入的字符
if ((ch >= 65) && (ch <= 90))//A'的编号是65,'Z'的编号90
{
printf("其小写是%c。", ch + 32);
}
else if (ch >= 97 && ch <= 122)//'a'的编号97,'z'的编号是122
{
printf("其大写是%c。", ch - 32);
}
else
{
printf("输入错误。请重新输入一个英文字母:");
}
}
2021年07月06日 12点07分 5
我也不太懂,如果是我我就这样子写,我也不知道goto,和start2你想用来干嘛,明明不需要
2021年07月06日 12点07分
level 11
start2:
fflush(stdin); //先清一下输入缓冲区
ch = getchar(); //获取一个字符输入
另一种方法是:
start2: scanf(" %c", &ch); //格式最前有一空格,然后%c, 这样输入时会略去输入缓冲区里的回车换行之类的空白字符,不影响你获取一个大小写字母符号。
2021年07月25日 11点07分 6
1