近期遇到一个奇怪的问题,写了一段很简单的窗口输入代码
char a;
std::cin>>a;
std::cout<<"a:"<<a<<endl;
但是运行的时候,cin这边根本没有停下来等待用户输入,直接跳过了,下面打印也是空。
经过排查,发现之前tcp连接的时候调用了一句代码。简化代码如下:
int m_socket;
close(m_socket);
m_socket没有初始化,就直接调用了close。在调用close之前,cin是好的。调用close之后,cin就不等待了。很奇怪。
最后将close这边屏蔽掉,问题解决。