Re: 請教C語言的scanf
※ 引述《leonboy39.bbs@bbs.mcu.edu.tw (HUNTER☆碩★<資傳二甲>)》之銘言:
: ※ 引述《quota@kkcity.com.tw (我要出清)》之銘言:
: > 請教一下..我下面的語法是否有錯的地方呢?
: > 為何我在執行時...
: > 當畫面出現
: > 請輸入陣列的大小
: > 我要輸入兩行數字
: > 他才會出現
: > 請輸入第1筆資料後按下enter
: > 請輸入第2筆資料後按下enter
: > 換句話說..第一筆資料的輸入,已經在
: > printf("請輸入第 %d 筆資料後按下enter",i+1);
: > 之前就出現了
: > 麻煩諸位大大幫我看看
: > 謝謝
: scanf("%d", &size);
^^
問題就在於這個地方
原PO的程式在%d後面有一個空白
於是scanf把它拿去吃掉輸入的Enter
但因為空白是可以吃掉連續的whitespace (即空白和換行和Tab)
於是它要等到後面確定沒有whitespace才會停止
於是就得輸入第二個數字
回文的leonboy39把空白拿掉之後
那些whitespace變成要在第二次scanf時才會被跳過
於是就不會要你輸入第二個數字
--
有人喜歡邊玩遊戲邊上逼;
也有人喜歡邊聽歌邊打字。
但是,我有個請求,
選字的時候請專心好嗎?
-- 改編自「古 火田 任三郎」之開場白
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.84.44.21
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章