[問題] 很奇怪的問題 scanf

作者: DirKai (Dirk_AI(MIX))   2014-06-16 16:39:24
開發平台(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):
作者: CaptainH (Cannon)   2014-06-16 16:42:00
unsigned short 要用 %hu
作者: DirKai (Dirk_AI(MIX))   2014-06-16 16:43:00
馬上可以了 但可以請問為什麼嗎?
作者: CaptainH (Cannon)   2014-06-16 16:45:00
scanf 針對每種型態的變數, 都有對應的 specifier
作者: s25g5d4 (function(){})()   2014-06-16 16:45:00
%hu
作者: s25g5d4 (function(){})()   2014-06-16 16:46:00
%d 是帶正負號 32bit 整數, %u 是不帶號 32bit 整數加上 h 修飾則是 變 short
作者: DirKai (Dirk_AI(MIX))   2014-06-16 16:47:00
了解...很少用scanf 為了這個卡好久>"< 謝謝兩位
作者: s25g5d4 (function(){})()   2014-06-16 16:48:00
很少用...一開始就學 cin/cout?
作者: DirKai (Dirk_AI(MIX))   2014-06-16 16:49:00
因為我都在做辨識 寫些核心 很少用到手動輸入...當然也是我沒有用心鑽研 造成現在浪費自己時間@@
作者: s25g5d4 (function(){})()   2014-06-16 16:52:00
其實我剛剛 google 才知道 short 是用 h 修飾 (逃
作者: uranusjr (←這人是超級笨蛋)   2014-06-16 16:53:00
scanf sucks, getline FTW
作者: s25g5d4 (function(){})()   2014-06-16 16:54:00
getline and sscanf (逃
作者: DirKai (Dirk_AI(MIX))   2014-06-16 16:54:00
嗯嗯 謝謝你 一開始一值以為跟printf一樣用%d即可等等來查sscanf getline怎麼使用...
作者: kingofsdtw (不能閒下來!!)   2014-06-17 07:13:00
google ->getline C
作者: DirKai (Dirk_AI(MIX))   2014-06-19 01:08:00
getline是c++???

Links booklink

Contact Us: admin [ a t ] ucptt.com