c++ - 空格与空字符

标签 c++ null space

在C++中,当我们需要打印单个空格时,我们可能会这样做:

cout << ' ';

或者我们甚至可以使用转换后的 ASCII 码作为空格:

cout << static_cast<char>(32); //ASCII code 32 maps to a single space

我意识到,打印一个空字符也会导致打印一个空格。

cout << static_cast<char>(0); //ASCII code 0 maps to a null character

所以我的问题是:当我打印 static_cast<char>(0) 时,它对所有 C++ 编译器都是通用的吗? , 它会始终显示为单个空格吗?

如果它是通用的,当我使用文件输出流时它是否适用于文本文件?

最佳答案

不,它在每个编译器中都是零 (0) 字符。似乎您使用的字体将零个字符呈现为空格。例如,在过去,DOS 对零个字符有不同的图像(几乎填满的矩形)。

无论如何,你真的不应该输出零字符而不是空格!

至于文本文件部分:使用十六进制编辑器打开输出文件,查看实际写入的位。您会看到其中的差异!

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

相关文章:

c++ - 使用 GTest 进行回调单元测试

c++ - boost1.44.0 文件系统 v3 无法在 solaris sparc 64 位平台上正常运行

c++ - 为什么 UIKit 或 Cocoa 必须用 Objective-C 编码?

sql-server - 将空值替换为每组中先前的非空值

objective-c - 为什么 `nil`的类型不是 `id`而是 `void *`

css - Opera 在定位时在列表下方添加额外的空间

c++ - 路径中的 Qt5 转义空间

c++ - free() 运算符是否从动态变量中删除地址?

ios - UITableView 部分之间的空间是多少?

PHP 和返回空引用(重新访问)