【发布时间】:2020-11-27 23:45:34
【问题描述】:
看例子:
#include<stdio.h>
int main()
{
char ch;
while(scanf("%c", &ch))
{
if(ch == 'a' || ch == 'e' || ch == 'i' ||
ch == 'o' || ch == 'u' || ch == 'A' ||
ch == 'E' || ch == 'I' || ch == 'O' ||
ch == 'U')
{
printf("It's Vowel\n");
}
else if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
{
printf("It's Consonant\n");
}
else
{
printf("Wrong Input/ It's not Alphabet\n");
}
}
return 0;
}
编译此示例代码后,当我输入“a”时,输出为“It's Vowel”和“Wrong Input/It's not Alphabet”。我认为这个输出的原因是,编译器把这个字符也把回车作为一个字符。
有没有办法解决这个问题?
【问题讨论】:
-
添加测试
if (ch == '\n') break;或者while(scanf("%c", &ch))-->while(scanf(" %c", &ch))。检测到'\n'后,您希望发生什么?
标签: c input while-loop