noo*_*ook 1 c++ constructor newline stdout
我最近写了一个涉及套接字的简单c ++程序.自从我使用c ++以来已经有一段时间了,所以我正在做一些简单的健全性检查,以确保我的类正确构建.那时我遇到了一个非常奇怪的错误.当我没有\n或endl在我的输出结束时,它不会写入控制台.例如:
这不会输出到控制台
class Server{
public:
Server(){
std::cout << "STARTING SERVER";
}
};
Run Code Online (Sandbox Code Playgroud)
这个会:
class Server{
public:
Server(){
std::cout << "STARTING SERVER" << std::endl;
}
};
Run Code Online (Sandbox Code Playgroud)
两者都是使用Server server;.这只是我电脑里的"幽灵"还是以前有人遇到过这个?
这很正常.它存储在缓冲区中,直到刷新缓冲区.您可以发送std::flush到流以刷新它.您可以使用std::endl写入行结束并刷新缓冲区.如果你在流中写了很多小东西,它基本上是一种避免大量I/O操作的优化.
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |