我有一个与 c 示例中的“printf”指令相关的问题:
printf("Percentage character: %%",10);
输出正确:百分比字符:%
为什么是格式说明符 (%%)?那边那个10是怎么回事?为什么编译器说 printf
的参数太多?
我尝试以另一种方式显示百分比字符:
printf("Percentage character: %c",putch(37));
然而,输出并不是很好:%Percentage charcater: %
为什么句前会出现百分号?
最佳答案
%%
转换规范在 printf
中用于打印单个 %
(不转换任何参数)。
例如:
printf("10%%\n");
打印
10%
现在在你的例子中:
printf("Percentage character: %%",10);
没问题,但是 printf
第二个参数被忽略了。它相当于:
printf("Percentage character: %%");
关于你的最后一个例子:
printf("Percentage character: %c",putch(37));
printf
和 putch
都将字符写入标准输出,因此首先评估 putch
并写入一个字符,然后是 printf
将一系列字符写入标准输出。使用:
printf("Percentage character: %c", 37);
如果您不想要第一个 %
或者更好:
printf("Percentage character: %c", '%');
如果你想独立于字符集(37在ASCII中是%,但在其他字符集上可以有其他值)。
关于c - c中带有百分比字符的奇怪格式说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34109373/