酷!學園
技術討論區 => 程式討論版 => C/C++程式設計討論區 => 主題作者是: student f 於 2021-03-22 02:40
-
題目:輸入一個英文字母,輸出其大寫字母
我打的程式碼如下:
#include <stdio.h>
int main()
{
while(1==1)
{
char ch;
printf("input char = ");
scanf("%c",&ch);
if(ch<90)
{
printf("char is : %c\n\n",ch);
}
else
{
ch-=32;
printf("char is : %c\n\n",ch);
}
}
}
請問輸出時,為何會多跑出下面這一行,沒用while時不會出現,但我想讓它可以重複輸入,不知道是哪裡出錯了,麻煩大家了。
input char = char is :
-
自己把 ch 用 %d 印出來看是什麼字再去想為什麼吧.
要精確的控制輸入, 就不要用 scanf 處理, 它的運作可能跟你想的不太一樣.
-
目前我知道ch用%d會輸出對應的十進位碼,
寫這樣是想利用大寫和小寫差32來換算。
用 %d 印除了原本的 input char = char is :
還多了一行 char is : 10
好神奇喔 :o :o
小弟是初學,
對scanf的運作還有其他輸入不太了解,
請問能指引一下要往那個方向去學呢?
感謝回復。