注意:原始海报已要求关闭该问题;见评论。
在触发“按任意键继续”(通常是CIN.ignore())时,C控制台程序退出后,其他CMD窗口停止响应控制台输入。
当从资源管理器窗口而不是从CMD执行程序时会发生这种情况。当程序在CMD中启动时,它会退出正常状态,其他控制台窗口也可以保留。
在没有运气的情况下尝试了cin.clear和getline。
有什么想法吗?
pthread_t sthread;
void *ret;
start=true;
if (pthread_create(&sthread, NULL, &sbsb, (void*)listeningSocket)){
cout << "[ERROR] unable to create thread for Server"<< endl;
if(closesocket(listeningSocket))
printf("[ERROR] CLOSE SOCKET FAILED WITH ERROR:%d\n",WSAGetLastError());
WSACleanup();
return -1;
}
cout<<"[SOCKET] Started listening on "<<port<<endl;
cin.ignore();
start=false;
cout<<"[END] Exiting"<<endl;
if(closesocket(listeningSocket))
printf("[ERROR] CLOSE SOCKET FAILED WITH ERROR:%d\n",WSAGetLastError());
pthread_join(sthread,&ret);
while (running_threads > 0)usleep(1);
WSACleanup();
cout<<"[END] Bye SB"<<endl;
return 0;
答案 0 :(得分:0)
只需关闭QuickEdit模式即可解决此问题。有关详情,请参见下文:
Windows Console Application Getting Stuck (Needs Key Press)
我的代码与问题无关,只是为了解决问题。