原创 关于scanf中%*的问题

2009-6-26 12:52 2584 9 9 分类: MCU/ 嵌入式

关于scanf中%*的问题:


从键盘输入:10 20 30<回车>输出的结果是?
#include <stdio.h>
main()
{
 int i="0", j="0", k="0";


 scanf("%d%*d%d", &i, &j, &k);
 printf("i=%d, j=%d, k=%d\n", i,j,k);
}


分析: 注意第二个d前面有一个*,%*表示读取输入的内容,但是不记录(不赋值),也就是说,跳过第二个输入内容。
  直接将第三个的输入的数赋值给j,所以结果是
  i=10, j="30", k="0"


即: %d, 读入第一个输入 10 赋值给 i,
  %*d,读入第二个输入 20 但是不赋值,
  %d, 读入第三个输入 30 赋值给 j, (i赋值了, 所以接着给j赋值),
  此时结束, 虽然k没有赋值, 但是格式化输入已经结束, 所以k的值仍为初值 0.


【2008-03-21】

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条