Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ getline和线程的问题_C++_Multithreading_Client_Getline - Fatal编程技术网

C++ getline和线程的问题

C++ getline和线程的问题,c++,multithreading,client,getline,C++,Multithreading,Client,Getline,我有一个在两个线程上工作的客户端。一个正在发送数据,另一个正在接收数据。在发送数据时,我有std::getline(std::cin,string)。现在,在这个线程中,我有无限循环,当第二个线程结束或者用户发出退出命令时,它就结束了。除了当第二个线程结束,无限循环结束时,程序仍然等待按下按钮,因为std::getline 现在提出问题: 我如何将数据发送到getline以“伪造”按下按钮,这样我就不必按下按钮来结束程序 第二个问题我有一个服务器,它为每个客户机运行另一个线程,服务器的主线程接受

我有一个在两个线程上工作的客户端。一个正在发送数据,另一个正在接收数据。在发送数据时,我有
std::getline(std::cin,string)
。现在,在这个线程中,我有无限循环,当第二个线程结束或者用户发出退出命令时,它就结束了。除了当第二个线程结束,无限循环结束时,程序仍然等待按下按钮,因为
std::getline

现在提出问题:

我如何将数据发送到getline以“伪造”按下按钮,这样我就不必按下按钮来结束程序


第二个问题我有一个服务器,它为每个客户机运行另一个线程,服务器的主线程接受新的连接,它也工作得很好。客户端存储在
std::list
中。每个线程都有inifnite循环,它从客户端接收数据。如果客户端诅咒太多,他会从服务器上被踢出,但当用户这样做时,问题是我刚从infite循环中断,线程正在结束,但我也想从列表中删除客户端,所以在程序的主线程中,我必须检查每次线程是否返回了正确的值,如果它确实从列表中删除了元素?

您使用的是哪个多线程系统?您可以使用特定的库函数中断或终止其他线程。Windows,我知道我可以只终止线程,但我宁愿终止它并安全地删除用户