以下面这道题为例子:
//判断是否为元音字母
#include<stdio.h>
int main()
{
char v[] = { 'a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U' };
char ch = 0;
//方法1:该方法在有的编译器下并不能有效
/*while (~scanf("%c\n", &ch))
{
int i = 0;
for (i = 0; i < 10; i++)
{
if (ch == v[i])
{
printf("Vowel\n");
break;
}
}
if (i == 10)
{
printf("Consonant\n");
}
}*/
//方法2:
/*while (~scanf("%c", &ch))
{
int i = 0;
for (i = 0; i < 10; i++)
{
if (ch == v[i])
{
printf("Vowel\n");
break;
}
}
if (i == 10)
{
printf("Consonant\n");
}
getchar();
}*/
方法3:
while (~scanf(" %c", &ch))
{
int i = 0;
for (i = 0; i < 10; i++)
{
if (ch == v[i])
{
printf("Vowel\n");
break;
}
}
if (i == 10)
{
printf("Consonant\n");
}
}
return 0;
}
总结:
方法1:%c 后面加\n(有的编译器下不可取);
方法2:用getchar()吸收;
方法3:%c前面加空格;