分享至
1.問題:為何無法輸入字元?
2.程式碼:
#include <stdio.h> main() { float i; float j; char sign; printf("請輸入i和j\n"); scanf("%f", &i); scanf("%f", &j); printf("請輸入符號\n"); scanf("%c", &sign); }
3.結果
已邀請的邦友 {{ invite_list.length }}/5
剛學C/C++會有個經典的字元輸入問題,
給個提示, 當你程式執行到scanf("%f", &j);, 你按下Enter, 其實也把[跳行]字元也給了進去, 導致下一行的scanf("%c", &sign);已經把[跳行]字元給接收.
scanf("%f", &j);
scanf("%c", &sign);
在scanf("%c", &sign);有個改法, 就能先過濾跳行, 先嘗試在網路上找到寫法~
如果在 % 前面多個空格,像是: scanf(" %f", &j);這樣遇到泛空白字元的就會自動吃掉了
scanf(" %f", &j);
淺水員 想留提示給原PO練習找答案的說....破梗了QQ
抱歉,我比較晚回應,我是用getchar()得到鍵盤上的字元
處理字元有很多種方法, getchar()也是一種~ 且它還能讀到跳行字元.
getchar()
IT邦幫忙