打印星号字符会在 C 中打印损坏的字符
Printing asterisk char prints broken character in C
我正在尝试打印一个星号,但它在终端打印中打印了一个 broken/special 字符。
我将char变量初始化为空
char asterisk = "";
并根据以下结果进行设置:
asterisk = (cube % 3 == 0) ? "*[=11=]" : "";
并使用
打印
printf("%d%c\n", cube, asterisk);
相反,我得到了输出
Enter an integer
2000
0§
1
8
27§
64
125
216§
343
512
729§
1000
1331
1728§
我尝试在三级运算符行的非空字符的赋值中添加转义序列,但这并没有解决问题。对于任何简单的错误,我深表歉意,我是 C 的新手。
您的星号不是 char
,它是一个字符串(char*
,用双引号表示)。如果要正确打印,应该使用%s
,而不是%c
:
printf("%d%s\n", cube, asterisk);
/* Here --^ */
我正在尝试打印一个星号,但它在终端打印中打印了一个 broken/special 字符。 我将char变量初始化为空
char asterisk = "";
并根据以下结果进行设置:
asterisk = (cube % 3 == 0) ? "*[=11=]" : "";
并使用
打印printf("%d%c\n", cube, asterisk);
相反,我得到了输出
Enter an integer
2000
0§
1
8
27§
64
125
216§
343
512
729§
1000
1331
1728§
我尝试在三级运算符行的非空字符的赋值中添加转义序列,但这并没有解决问题。对于任何简单的错误,我深表歉意,我是 C 的新手。
您的星号不是 char
,它是一个字符串(char*
,用双引号表示)。如果要正确打印,应该使用%s
,而不是%c
:
printf("%d%s\n", cube, asterisk);
/* Here --^ */