如何在 C++ 中打印 const char 指针
Posted
技术标签:
【中文标题】如何在 C++ 中打印 const char 指针【英文标题】:how to print const char pointer in c++ 【发布时间】:2015-01-08 12:32:04 【问题描述】:您好,我正在尝试打印以 '\0' 结尾的 const * char 字符串
但是当我想使用 cout 时
const char command[9] = 'S', 'T', 'E', 11, 12, 13, 14, 15, '\0';
const char * i = command;
cout<<i;
它给了我一些正方形“[][][]”
所以我尝试迭代整个字符
while(*i != '\0')
cout << *i;
i++;
它给了我:S[][][]。进展吗?
当我打印 *i 时,它给我 'S' 但 *(i+1) '[][]'。
问题在于我有 8 位字符,而 int 是 32 位吗? 或者如果我做错了什么?
已解决:
char 13 作为“垂直选项卡”返回 carrage 并从控制台“STE”隐藏,然后 C++ 打印 3 个其他不可打印的值。 -现在我需要一杯咖啡..
【问题讨论】:
你希望为11, 12, 13, 14, 15,
打印什么?
你的意思是那些int
值是string
文字?
我想看到“STE”不单独“S”其余的都是二进制值
11-15 是控制字符。一些控制字符可以擦除或覆盖以前打印的字符。
@five555 您应该为您的问题写一个答案,而不是在 "Solved ..." 中进行编辑
【参考方案1】:
这就是问题
const char command[9] = 'S', 'T', 'E', 11, 12, 13, 14, 15, '\0';
因为 ascii 值 11, 12, 13, 14, 15
不是可打印字符,试试这个
const char command[14] = 'S', 'T', 'E', '1', '1', '1', '2', '1', '3', '1', '4', '1', '5', '\0';
图片来自http://www.asciitable.com/
【讨论】:
【参考方案2】:已解决:
char 13 作为“垂直选项卡”返回 carrage 并从控制台“STE”隐藏,然后 C++ 打印 3 个其他不可打印的值。 -现在我需要一杯咖啡..
对不起,我坚持这个。
【讨论】:
@iharob 因为 SO 规则我不能接受我的 2 天以上是关于如何在 C++ 中打印 const char 指针的主要内容,如果未能解决你的问题,请参考以下文章