我如何打印整数?当我使用时:
int n = GetInt();
printf("%n \n", n);
我得到的错误是有一个未使用的变量,我无法编译它。
答案 0 :(得分:1)
有符号整数使用%d
(或%i
)。
另请参阅man 3 printf
(在类Unix系统上)以获取整个修饰符列表。
答案 1 :(得分:0)
那是因为你需要使用与你传递的整数相对应的格式说明符。最常见的是%d
。尝试将%n
替换为%d
。
答案 2 :(得分:0)
正如其他答案所示,您通常使用int
转化规范打印%d
,或者选择%i
转换规范。您也可以使用%o
,%x
或%X
(以及%u
),但从技术上讲,这样做会带来签名到无符号的转换。
请注意,%n
是printf()
等人的有效转换规范。但是,与所有其他转换规范不同,%n
转换规范是一个输出操作,它将指针指向int
,并用于查找已写入到该点的字符数。格式字符串。因此,您可以使用:
int n = GetInt();
int c;
printf("%d%n\n", n, &c);
printf("%d characters in number %d\n", c, n);
另请注意,在换行前几乎不需要任何空格。
TR24731-1(或ISO / IEC 9899:2011附件K,边界检查接口)定义printf_s()
等,并明确禁止%n
转换规范,因为它经常导致问题正是因为它是输出参数而不是输入参数。
答案 3 :(得分:0)
int n;
printf("get number:");
scanf("%d",&n);
scanf("%d",&n);
printf("你的号码是 %d\n",n); 返回 0;