標題:
關於C Program
發問:
- 求電影"天姖戰"(Sucker Punch)中的歌名和歌詞@1@
- 有邊幾間銀行可以拎到"阿里巴巴"招股書"及表格-@1@
- 做唔做到繪畫Light Painting
- head porter(dot)除左潮流特區有得買之外,香港仲有邊間有得買-
- 油麻地去迪士尼
- KCRC 車卡
- 56k係咩意思 ---@1@
- 有d乜四川野就講出來!!
- 用210定acr21好-@1@
- 如何可以申請專利 -@1@
此文章來自奇摩知識+如有不便請留言告知
我而家要做一張receipts出黎,要使用者回答四條問題,而個資料性質 (其中三樣係輸入數字(int),一樣係輸入英文字(char)... 我想將要輸入英文字母的那條問題放落該四條問題中的第二條... 但唔知點解當答完第1條問題後.就自動跳落第3條 請問有什麼方法可以解決??? (急..要做功課)
最佳解答:
我想是因為你用了 scanf 去讀取輸入。 如果你的 code 是像下面的一般: int ans1, ans3, ans4; char ans2; printf(”Question 1..”); scanf(”%d”, &ans1); printf(”Question 2..”); scanf(”%c”, &ans2); printf(”Question 3..”); scanf(”%d”, &ans3); printf(”Question 4..”); scanf(”%d”, &ans4); 假設用戶的輸入是 123[ENTER] A[ENTER] 321[ENTER] 123[ENTER] 當用戶輸入 123 按 enter 時,這樣你的 ans1 應該可以儲存到用戶的輸入(即123)但同時你的 ans2 就已經儲存了 enter (即是
)這個 character 了。 因為你的 code 是要 scan 用戶的 input。那麼第一個 %d 自然是 123,但之後的 %c 就會是用戶的 ENTER。這是你控制不到的。 如果你要使得用戶每控一次 enter 才是一個輸入,你可以用 gets 和 sscanf 這兩個 function。 gets 這個 function 是一次過 read 一行 input (即是直至有
符號為止。 sscanf 是類似 scanf,不過它不是 scan 用戶的輸入,而是 scan 一個 string value。 所以你可以先用 gets 將一整行 read 入來,裝在一個 string variable 裡。然後再有 sscanf 去 scan 這條 string 去得出要的 values。 就上面的例子,你可以這樣寫: int ans1, ans3, ans4; char ans2; char s[1024]; printf(”Question 1..”); gets(s); sscanf(s, ”%d”, &ans1); printf(”Question 2..”); gets(s); sscanf(s, ”%c”, &ans2); printf(”Question 3..”); gets(s); sscanf(s, ”%d”, &ans3); printf(”Question 4..”); gets(s); sscanf(s, ”%d”, &ans4); 希望幫到你。
其他解答:FAD2A23AB937987B
留言列表