如何在c中使用printf来打印整数

时间:2012-08-06 23:58:04

标签: c

我如何打印整数?当我使用时:

int n = GetInt();

printf("%n \n", n);

我得到的错误是有一个未使用的变量,我无法编译它。

4 个答案:

答案 0 :(得分:1)

有符号整数使用%d(或%i)。

另请参阅man 3 printf(在类Unix系统上)以获取整个修饰符列表。

答案 1 :(得分:0)

那是因为你需要使用与你传递的整数相对应的格式说明符。最常见的是%d。尝试将%n替换为%d

Here's a more in depth explanation of all the format codes

答案 2 :(得分:0)

正如其他答案所示,您通常使用int转化规范打印%d,或者选择%i转换规范。您也可以使用%o%x%X(以及%u),但从技术上讲,这样做会带来签名到无符号的转换。

请注意,%nprintf()等人的有效转换规范。但是,与所有其他转换规范不同,%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;