[問題] scanf的怪問題

看板C_and_CPP作者 (超囧學生 衝阿!)時間14年前 (2010/04/19 01:25), 編輯推噓3(305)
留言8則, 6人參與, 最新討論串1/1
使用平台:dev c++ 在用 scanf 的時候 要是寫成 scanf("%d",&number); printf("%d",number); 會很順利的輸入整數資料然後在輸出 例: 5 5 但要是寫成 scanf("%d ",&number); /* %d後面多一個 空格 */ printf("%d",number); 執行的時候當輸入完整數資料時 會要你再輸入一個沒用的東西 然後才會輸出第一次輸入的整數 中間輸入的東西不知道跑哪去 例: 5 balabala1234 5 請問為啥會這樣阿? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.67.236

04/19 01:31, , 1F
它沒吃飽 XD
04/19 01:31, 1F

04/19 03:23, , 2F
space在scanf格式是有意義的,用來match space
04/19 03:23, 2F

04/19 03:25, , 3F
match的space應該是符合isspace()的所有字元
04/19 03:25, 3F

04/19 03:26, , 4F
所以換行、tab、空白都被吃掉,scanf就不會停
04/19 03:26, 4F

04/19 09:45, , 5F
推沒吃飽, 沒有 match 到樓上說的東西 程式會一直等喔
04/19 09:45, 5F

04/19 15:02, , 6F
scanf("%d",&p);""中間不能有空格喔!!!
04/19 15:02, 6F

04/20 01:32, , 7F
可以有空格,但要放在%d前面,不要放在後面
04/20 01:32, 7F

03/31 00:07, , 8F
3Q 找這篇才找到程式問題
03/31 00:07, 8F
文章代碼(AID): #1Boq2PIF (C_and_CPP)