-1

注意: 元の投稿者は、質問を閉じるように要求しています。コメントを参照してください。

基本的に CIN.ignore() である「Press any key to continue」をトリガーして 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;  
4

1 に答える 1