在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/