IT story

C ++ 사용자 입력 대기

hot-time 2020. 8. 26. 19:25
반응형

C ++ 사용자 입력 대기


콘솔 응용 프로그램에서 사용자 입력을 기다리는 가장 좋은 방법은 무엇입니까?

std::cout << "press any key to exit...";
// wait for user to hit enter or another key

이를 수행하는 몇 가지 방법은 다음과 같습니다.

  1. 사용 getch()(필요 #include <conio.h>).

  2. 사용하십시오 getchar()( Enter, 필요 #include <iostream>).

  3. 사용하십시오 cin.get()( Enter, 필요 #include <iostream>).

  4. 사용 system("pause")(필요 #include <iostream>).

    추신 :이 방법은 Press any key to continue . . .화면 에도 인쇄 됩니다. (당신을위한 완벽한 선택 인 것 같습니다 :))


편집 : 여기 에서 논의했듯이 이것에 대한 완전한 휴대용 솔루션은 없습니다. comp.lang.c FAQ 의 질문 19.1은 Windows, Unix 계열 시스템, 심지어 MS-DOS 및 VMS를위한 솔루션으로이 문제를 깊이있게 다룹니다.


do while 루프는 사용자 입력을 기다리는 좋은 방법입니다. 이렇게 :

int main() 
{

 do 
 {
   cout << '\n' << "Press a key to continue...";
 } while (cin.get() != '\n');

 return 0;
}

이 기능을 사용할 수도 system('PAUSE')있지만 조금 느리고 플랫폼에 따라 다릅니다.


이를 수행하는 "표준"라이브러리 기능은 없습니다. 이 표준 (아마 놀랍게도)은 "콘솔 입력"에 대한 표준이 있지만 실제로 "키보드"의 개념을 인식하지 않습니다.

다양한 운영 체제에서이를 달성하는 방법에는 여러 가지가 있지만 (herohuyongtao의 솔루션 참조) 키보드 입력을 지원하는 모든 플랫폼에서 이식 가능한 것은 아닙니다.

C ++ (및 C)는 키보드가없는 임베디드 시스템에서 실행할 수있는 언어로 고안되었습니다. (임베디드 시스템에는 표준 라이브러리가 지원하는 다양한 다른 장치가 없을 수 있습니다.)

이 문제는 오랫동안 논의되어 왔습니다.


당신은 시도 할 수 있습니다

#include <iostream>
#include <conio.h>

int main() {

    //some codes

    getch();
    return 0;
}

참고 URL : https://stackoverflow.com/questions/21257544/c-wait-for-user-input

반응형