我在预处理器中使用了这个
#define SQMETERS_PR_SEC 2
这在主要功能中
printf(" to mow your lawn with a speed of %c.\n\n", SQMETERS_PR_SEC);
但是 %c 只是返回一个空格。
您使用什么字母作为常量占位符?
我在预处理器中使用了这个
#define SQMETERS_PR_SEC 2
这在主要功能中
printf(" to mow your lawn with a speed of %c.\n\n", SQMETERS_PR_SEC);
但是 %c 只是返回一个空格。
您使用什么字母作为常量占位符?
这取决于,在这种情况下,您的常量是一个小整数,因此您可以使用%d
.
然而,字符串常量会用%s
等打印。无论类型如何,打印常量都没有通用技巧。
这样做的原因是您的“常量”实际上是一个宏,这意味着在其位置之外的任何点SQMETERS_PR_SEC
都会在文本上替换为2
. 就是这样 - 没有花哨的解释或任何东西,它是文本复制/粘贴。
你的问题是,它%c
会打印一个字符,因为它是 ASCII 值。
now2
是控制字符“文本开始”的 ASCII 值,它不可打印,因此printf
将输出占位符(例如空格)。
如果要打印数字,请%d
改用:
printf(" do foo bar at %d kul\n", 2);
由于定义只是替换了代码,并且您说要将2
解释为与不相似char
的函数放入函数中,因此您只需将索引 2 的 ASCII 代码的转义序列放在那个位置。printf()
'2'
%c
如果定义是即:
#define SQMETERS_PR_SEC '2'
那么这将是正确的。