空格而不是ascii字符

时间:2014-01-28 20:51:10

标签: c++ windows-7 visual-c++-2010

#include <iostream>

int main() {
    for(int i=0;i<18;i++)
       std::cout << (char)i << '\n';
}

OUTPUT是:
enter image description here

但是其他角色在哪里? enter image description here

1 个答案:

答案 0 :(得分:3)

您希望看到的字符不是ASCII。在ASCII中,低于32的代码表示所谓的控制字符,它最初用于控制电传打印机上的功能。它们中的许多都不适用于现代终端,​​因此您的终端只选择了一些字符(或从其他编码中获取它们),例如面部和卡套装,以用于这些代码。一些ASCII控制字符仍然适用。

  • 7是一个叫铃号('\a'),你可能听到过一声哔哔声。
  • 8是退格('\b')。

    std::cout << "abc" << (char)8 "def"; // where's the c?

  • 9是一个水平制表符('\t'),所以它是不可见的,但如果你在它之前和之后打印可见字符,你可能会注意到它。

    std::cout << "before" << (char)9 << "after";

  • 10是换行符,a.k.a。换行符('\n'

  • 13是回车('\r')。

    std::cout << "hello" << (char)13 << "world"; // where's the hello?

您的结果可能会因您使用的终端而异。