c++ - 空格代替 ascii 字符

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

#include <iostream>

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

输出是:
enter image description here

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

最佳答案

您期望看到的字符不是 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 是换行符,又名换行符 ( '\n' )

  • 13 是一个回车符 ( '\r' )。

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

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

关于c++ - 空格代替 ascii 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21416551/

相关文章:

c++ - 如何按 block 初始化 "Eigen"- 矩阵?

c++ - 从隐藏变为可见时,如何阻止窗口短暂地重新出现在其最后可见的位置?

python - Eclipse 和 PyDev 调试器出现错误,但该程序在 win 7 上运行良好

c++ - Visual C++ 2010,右值引用错误?

c++ - 将字符串打印到文件,为什么需要额外的位?

c++ - 由于ostream和qiodevice.h中的错误,跨平台Qt项目无法在windows上编译

c++ - 维护当前选定的对象是否很好地使用状态模式?

c++ - C++ 中的 cstdint 未定义 uint_t 系列

c++ - 与共享动态库交叉编译

windows-7 - 安装不显示命令提示符