【问题标题】:how to print const char pointer in c++如何在 C++ 中打印 const char 指针
【发布时间】: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 ..." 中进行编辑

标签: c++ pointers


【解决方案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 天
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 2020-08-14
    • 2016-06-10
    • 1970-01-01
    • 2016-06-23
    • 2020-06-03
    • 1970-01-01
    相关资源
    最近更新 更多