C ++ Console App呈现其他CMD窗口不接受控制台输入

时间:2013-09-28 02:34:33

标签: c++ windows cmd

注意:原始海报已要求关闭该问题;见评论。

在触发“按任意键继续”(通常是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;  

1 个答案:

答案 0 :(得分:0)

只需关闭QuickEdit模式即可解决此问题。有关详情,请参见下文:

Windows Console Application Getting Stuck (Needs Key Press)

我的代码与问题无关,只是为了解决问题。