-3

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

int n = GetInt();

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

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

4

4 回答 4

1

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

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

于 2012-08-07T00:00:12.350 回答
0

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

这是对所有格式代码的更深入的解释

于 2012-08-06T23:59:33.380 回答
0

正如其他答案所示,您通常int使用%d转换规范或可选地使用%i转换规范打印。您也可以使用%o,%x%X(and %u),尽管从技术上讲,这样做意味着有符号到无符号的转换。

请注意,这%nprintf()等人的有效转换规范。但是,与所有其他转换规范不同,%n转换规范是一个输出操作,它接受一个指向 an 的指针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转换规范,因为它经常导致问题,正是因为它是输出参数而不是输入参数。

于 2012-08-07T00:18:01.610 回答
0

int n;

printf("get number:");
scanf("%d",&n);
scanf("%d",&n);

printf("你的号码是 %d\n",n); 返回0;

于 2021-07-16T05:12:07.957 回答