我觉得是因为如果输入其他的符号,会直接跳到第一个
getchar();/*清除回车*/
那里执行.这样就将这个字符保存了下来,以至于和下面的
printf ("go on? (y/n)\n");
中的'g'字母造成乱码的出现!
只要将
printf ("go on? (y/n)\n");
改为
printf ("\ngo on? (y/n)\n");
就可以了!!
当然,把双引号改为单引号也是应该的!!
#include
void main ()
{
char a,b;
do
{
printf("input a letter\n");
scanf ("%c",&a);
if (a>='A'&&a<='Z') /*判断是否为大写字母*/
{
a=a+('a'-'A');/*转为小写*/
printf("%c",a);
}
getchar();/*清除回车*/
printf ("\ngo on? (y/n)\n");
scanf ("%c",&b);
getchar(); /*清除回车*/
}
while (b=='y');
getch();
}