看板 C_and_CPP 關於我們 聯絡資訊
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) c裡面是不能連續用scanf嗎 只能夠有一個scanf,其他要用getch之類的來抓字元嗎? 希望得到的正確結果: 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) VC++ on vista 有問題的code: (請善用置底文標色功能) code網址在這 http://codepad.org/rJFXmg8J 補充說明: 在這裡先謝謝了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.126.3.214
ducksteven:你踩到了 \n 還留在 buffer 的地雷 12/23 01:30
cooper6334:我用scanf("%c\n",&a)還是不行,scanf("\n%c",&a)就可以 12/23 01:39
cooper6334:有人可以解釋一下嗎? 12/23 01:39
freesamael:把scanf參數的"%c"改成" %c" 12/23 01:45
freesamael:就會跳過space和\n了 12/23 01:46
freesamael:"%c"會吃到所有空白和換行字元,請參考scanf的說明 12/23 01:47
freesamael:http://linux.die.net/man/3/sscanf 12/23 01:48
amu1661024:一個比較笨的方法就是你後兩個scanf連續用兩次 12/23 01:55
amu1661024:這樣第一個scanf就會吃掉前一個scanf留下的\n 12/23 01:56
pongremix:原來是這樣那我了解了..非常謝謝 12/23 02:01
pongremix:謝謝 freesamael 12/23 02:02
VictorTom:#1BB7xIhX 這篇也才剛有人討論過:) 12/23 09:46
lairrol:不然用看看gets() 12/23 10:58