首页 > 解决方案 > 打印星号字符在 C 中打印损坏的字符

问题描述

我正在尝试打印一个星号,但它在终端打印中打印了一个损坏的/特殊字符。我将 char 变量初始化为空

char asterisk = "";

并根据以下结果进行设置:

asterisk = (cube % 3 == 0) ? "*\0" : "";

并使用打印

printf("%d%c\n", cube, asterisk);

相反,我得到了输出

Enter an integer
2000
0§
1
8
27§
64
125
216§
343
512
729§
1000
1331
1728§

我试图在三级运算符行的非空字符分配中添加转义序列,但这并没有解决问题。对于任何简单的错误,我深表歉意,我对 C 很陌生。

标签: cprintingcharprintf

解决方案


您的星号不是 a char,而是一个字符串 ( char*,用双引号表示)。如果你想正确打印它,你应该使用%s,而不是%c

printf("%d%s\n", cube, asterisk);
/* Here --^ */

推荐阅读