2013-04-15 3 views
1

내가 컴파일하고 데브 C++에서 다음 코드를 실행getch()를 사용하지 않으면 출력이 왜 깜박입니까?

#include <stdio.h> 
main() 
{ 
    printf("Hello world!"); 
} 

출력은 깜박입니다. getch을 추가하면 그대로 유지됩니다.

#include <stdio.h> 
main() 
{ 
    printf("Hello world!"); 
    getch(); 
} 

왜 그런가?

+0

'getch'는 무엇을합니까? – devnull

+0

사용자로부터 입력을받습니다. 그렇지 않니? –

+0

당신은 대답을 안다, 그렇지? – devnull

답변

3

getch()은 프로그램을 종료하기 전에 사용자 입력을 기다립니다. Win32 콘솔 응용 프로그램에서 짜증나는 일은 프로그램이 종료 되 자마자 콘솔이 닫히는 것입니다 (따라서 왜 깜박이는지).

Win9x의 이전 DOS 프로그램 (DOS 바로 가기 등록 정보에서 선택란을 선택하지 않은 경우 콘솔이 기본적으로 열어 둘 수 있음)에서는 이와 같은 상황이 발생하지 않았습니다.

명령 프롬프트에서 두 버전의 프로그램을 모두 실행하면 키를 누른 후에 두 번째 버전 만 프롬프트로 돌아갑니다.

1

콘솔이 종료되고 프로그램이 종료되므로 콘솔이 사라집니다. 입력을 기다리는 데 getch()을 사용하는 것으로 볼 때 프로그램이 종료하지 못하도록하지만 이식 할 수 없으므로 대체로 std::cin.get()을 사용할 수 있습니다.이 입력은 Enter 키를 눌러야하기 때문에 약간 다릅니다.

관련 문제