[英]c++ not writing to console unless a newline was encountered
我最近正在编写一个涉及套接字的简单c ++程序。 自从我使用c ++以来已经有一段时间了,所以我进行了一些简单的健全性检查,以确保正确构造了我的类。 那我遇到了一个非常奇怪的错误。 当我在输出到控制台的末尾没有\\n
或endl
时,它将不会写入控制台。 例如:
这不会输出到控制台
class Server{
public:
Server(){
std::cout << "STARTING SERVER";
}
};
这个会:
class Server{
public:
Server(){
std::cout << "STARTING SERVER" << std::endl;
}
};
两者都是使用Server server;
创建的Server server;
。 这只是我计算机中的“鬼”,还是以前有人遇到过?
那很正常 它存储在缓冲区中,直到刷新缓冲区。 您可以将std::flush
发送到流中以对其进行刷新。 您可以使用std::endl
写入行尾并刷新缓冲区。 从本质上讲,这是一种优化,可以避免在向流中写入很多小东西时避免进行大量I / O操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.