[问题] 很奇怪的问题 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