如何在 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 指针的主要内容,如果未能解决你的问题,请参考以下文章

const char* 如何不仅仅是一个字符? [关闭]

为指向 const 的指针赋值 指向 const char 的指针 (const char * const * p)

在c中打印/存储n字节的u_char指针?

C++ 字符(char)指针

C++学习-const

为啥 <const char*> 和 <const char[]> 有非常不同的内存或指针行为?