书上不可能什么都写、什么都有,但你要自己去钻研。书上的例子,一开始教你“Hello, world!”,会指点你如何使用printf(),用打印"Hello, world!"来示范,然后又提到输出整数、浮点数,接着会提scanf(),但这些都是泛泛而谈,而不深入。你读书的时候,看到书上这样讲,就应该亲手操作,用
各种各样不同的方法来检验书上说的东西。
对scanf("%d", &i),你虽然定义了int i,但scanf()这样读取的i是不是整数呢、是怎样的整数呢?正如你的实验结果告诉你,当输入字符的时候,i是一个出乎意料的整数,它居然不晓得你输入的是字符而不是数字。由这个现象,你就应该察觉必须仔细研究scanf()在键入什么内容的时候获得什么结果了。
现在,你重新写一个专门测试scanf()函数的程序:
程序代码:
int x;
scanf("%d", &x);
printf("%d,%c", x, x);
分别键入"0"、"1"、"2"、"3"、"a"、"A"等字符,看看输出什么,再看看代码,输出的分别对应是哪个格式符。总结规律之后,把scanf("%d", &x)成scanf("%c", &x),再用刚才的输入再测试一次,比较两次的结果。
如果你以后学习,都用同样的方法来做,学到的东西比纯粹看书多得多。这才是教你如何渔猎,而不是直接给你鱼虾蟹,将来不至于什么都问,而人家也不会看着这么幼稚的问题(事实上类似的问题在坛子天天有新人,次数已经超越unsigned int的上限了)而不答。
[
本帖最后由 TonyDeng 于 2012-4-2 19:22 编辑 ]