我有一些简单的代码:
#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?
答案 0 :(得分:4)
在输入.run()
之前,您没有刷新流,因此您的信息仍然位于缓冲区中。
使用std::cout << std::flush
(或std::cout << std::endl
也包含换行符。)