我如何打印整数?当我使用:
int n = GetInt();
printf("%n \n", n);
我得到一个错误,有一个未使用的变量,我无法编译它。
有符号整数使用%d(或%i)。
另请参阅man 3 printf(在类 Unix 系统上)以获取完整的修饰符列表。
那是因为您需要使用与您传递的整数相对应的格式说明符。最常见的是%d. 尝试将 替换%n为%d.
正如其他答案所示,您通常int使用%d转换规范或可选地使用%i转换规范打印。您也可以使用%o,%x或%X(and %u),尽管从技术上讲,这样做意味着有符号到无符号的转换。
请注意,这%n是printf()等人的有效转换规范。但是,与所有其他转换规范不同,%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转换规范,因为它经常导致问题,正是因为它是输出参数而不是输入参数。
int n;
printf("get number:");
scanf("%d",&n);
scanf("%d",&n);
printf("你的号码是 %d\n",n); 返回0;