【发布时间】:2015-07-05 17:06:09
【问题描述】:
以下代码是什么意思,在C语言中
scanf("%d%#d%d",&a,&b,&c);
如果给定值1 2 3,则输出为1 0 0
P.S- 我知道它与 printf() 语句一起使用,但在 scanf() 语句中它给出了随机行为。
【问题讨论】:
-
如果我错了,请有人纠正我,但
#不是仅用于printf吗?我以为它是用来将0加到八进制数和0x到十六进制 -
在任何
scanf手册页中都找不到它。我想你应该有一个警告告诉你没有这样的修饰符。你编译时有警告吗?确实@Levi,printf man 显示#修饰符 -
它在 scanf() 的 gcc 编译器中工作
-
@FossArduino:你使用的是什么版本的 gcc?在我的 (4.9.2) 上,我收到警告
-
它返回是什么?可能是
1,表示只有第一次转换成功,因此b和c没有初始化。
标签: c input scanf format-specifiers