[問題] 很奇怪的問題 scanf

看板C_and_CPP作者 (Dirk_AI(MIX))時間10年前 (2014/06/16 16:39), 編輯推噓3(3015)
留言18則, 5人參與, 最新討論串1/1
開發平台(Platform): dev c++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): scanf 連輸入 只有最後一個變數有接收到值 餵入的資料(Input): 1 2 預期的正確結果(Expected Output): 預期連續輸入 長、寬 再連續printf 長寬高 是一開始輸入的值 輸入1 2 照理應該是輸出 1 2 呀 錯誤結果(Wrong Output): 結果是變成 0 2 程式碼(Code): main() { unsigned short w, h, r; scanf("%d",&w); scanf("%d",&h); printf("%d\t%d\n",w,h); system("pause"); } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.121.16.222 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1402907966.A.EC9.html

06/16 16:42, , 1F
unsigned short 要用 %hu
06/16 16:42, 1F

06/16 16:43, , 2F
馬上可以了 但可以請問為什麼嗎?
06/16 16:43, 2F

06/16 16:45, , 3F
scanf 針對每種型態的變數, 都有對應的 specifier
06/16 16:45, 3F

06/16 16:45, , 4F
%hu
06/16 16:45, 4F

06/16 16:45, , 5F
這樣才能得知要如何把值存進變數裡
06/16 16:45, 5F

06/16 16:46, , 6F
%d 是帶正負號 32bit 整數, %u 是不帶號 32bit 整數
06/16 16:46, 6F

06/16 16:47, , 7F
加上 h 修飾則是 變 short
06/16 16:47, 7F

06/16 16:47, , 8F
了解...很少用scanf 為了這個卡好久>"< 謝謝兩位
06/16 16:47, 8F

06/16 16:48, , 9F
很少用...一開始就學 cin/cout?
06/16 16:48, 9F

06/16 16:49, , 10F
因為我都在做辨識 寫些核心 很少用到手動輸入...
06/16 16:49, 10F

06/16 16:50, , 11F
當然也是我沒有用心鑽研 造成現在浪費自己時間@@
06/16 16:50, 11F

06/16 16:52, , 12F
其實我剛剛 google 才知道 short 是用 h 修飾 (逃
06/16 16:52, 12F

06/16 16:53, , 13F
scanf sucks, getline FTW
06/16 16:53, 13F

06/16 16:54, , 14F
getline and sscanf (逃
06/16 16:54, 14F

06/16 16:54, , 15F
嗯嗯 謝謝你 一開始一值以為跟printf一樣用%d即可
06/16 16:54, 15F

06/16 16:55, , 16F
等等來查sscanf getline怎麼使用...
06/16 16:55, 16F

06/17 07:13, , 17F
google ->getline C
06/17 07:13, 17F

06/19 01:08, , 18F
getline是c++???
06/19 01:08, 18F
文章代碼(AID): #1Jdgq-x9 (C_and_CPP)