這個代碼,本來我是希望能夠輸入大寫字母,輸出小寫字母,這個能夠重復運行直到輸入一個特定的字符,但是我卻發現不論輸入什么值,"erroe"都會莫名其妙的輸出一遍,球球大腦幫幫我



#include<stdio.h>
int main()
{
printf("請輸入大寫字母,如需退出請輸入\'2\'\n");
char a,b;
while (a!='2')
{
scanf("%c",&a);
if(a>='A'&&a<='Z')
{
b=a+32;
printf("%c的小寫字母是%c\n",a,b);
}
else
{
printf("error\n");
}
}
return 0;
}
uj5u.com熱心網友回復:
供參考:#include<stdio.h>
int main()
{
printf("請輸入大寫字母,如需退出請輸入\'2\'\n");
char a,b;
while (a!='2')
{
rewind(stdin);
scanf("%c",&a);
if(a>='A'&& a<='Z')
{
b=a+32;
printf("%c的小寫字母是%c\n",a,b);
}
else
{
printf("error\n");
}
}
return 0;
}
uj5u.com熱心網友回復:
這題重點:是要讀完1個字符后,清緩沖區,win,linux方法都給你了,自己看系統用吧。另外順手把你輸入的不可見字符也打出來了。#include<stdio.h>
int main()
{
printf("請輸入大寫字母,如需退出請輸入\'2\'\n");
char a;
while (a!='2')
{
scanf("%c",&a);
fflush(stdin); //清緩沖區for win
//setbuf(stdin,NULL); //清緩沖區for linux
if(a>='A'&&a<='Z')
printf("%c的小寫字母是%c\n",a,a+'a'-'A');
else if(a==' ')
printf("input error, char is: space\n");
else if(a=='\n')
printf("input error, char is: enter\n");
else
printf("input error, char is:%c\n",a);
}
return 0;
}
uj5u.com熱心網友回復:
rewind(stdin);//window / linux 通用清輸入緩沖區轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/267701.html
標籤:新手樂園
上一篇:1.2 什么是演算法
下一篇:C語言:二進制數轉換為十進制數
