c - 打印星号字符在 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 很陌生。
解决方案
您的星号不是 a char
,而是一个字符串 ( char*
,用双引号表示)。如果你想正确打印它,你应该使用%s
,而不是%c
:
printf("%d%s\n", cube, asterisk);
/* Here --^ */
推荐阅读
- twitter-bootstrap - 在容器内引导非常简单的 col-12 但不起作用
- codenameone - 重新加载 CN1 表单后,GUI 元素停止正常工作
- kotlin - 无法注入列表
用于扩展 Java 类的类 - c++ - Windows API 互锁单链表真的是无锁的吗?
- java - Selenium (Java):同时做正负检查页面是否正确加载
- xcode - Xcode 12.1 源代码控制未显示所有分支
- arrays - Perl 中的多维数组或哈希。访问项目
- javascript - 在 React 中更新对象值的状态
- python - Skimage.feature.hog 找到主导方向
- php - Composer2 和 PSR-4 弃用通知