当boost的io服务运行时,无法cout字符串

时间:2016-10-21 11:32:14

标签: c++ boost boost-asio

我有一些简单的代码:

#include <iostream>
#include <string>
int main() {
    boost::asio::io_service ioservice;
    TCPServer server(ioservice);
    std::cout << "hello world";
    ioservice.run();
}

我在上面打招呼世界字符串。虽然拨打service.run()时我的终端上没有输出字符串。当我删除最后一个调用表达式时,可以看到输出。让我烦恼的是我在电话会议之前没有输出任何东西。似乎cout甚至在我的TCP服务器上定义的处理程序上也不可用。那么在使用Boost Asio时人们如何登录到stdout?

1 个答案:

答案 0 :(得分:4)

在输入.run()之前,您没有刷新流,因此您的信息仍然位于缓冲区中。

使用std::cout << std::flush(或std::cout << std::endl也包含换行符。)