这段代码,
#include <iostream>
int main() {
std::cout << "---" << std::endl;
std::cout << char() << std::endl;
std::cout << "---" << std::endl;
}
打印
---
---
为什么
std::endl
不会导致另外两条线之间出现一条新线?
删除
char() <<
使输出成为我期望的
---
---
原因是
char()
创建了默认值为0的char
,在ASCII中它是结束字符串的NUL终止符(\0
)。您可以将 char()
更改为 "it is visible \0 and it is not"
之类的内容,并且 \0
之后的字符串部分将被删除。 std::endl
也会发生同样的情况,只是被丢弃了。