반응형
system("pause") 대신 사용할 수 있는 입력을 기다리는 기능을 구현할 방법을 생각해보자.
_getch()를 사용해 Any key 입력 대기 (Windows Only)
_getch()는 입력이 들어올 때까지 블로킹되며, 콘솔에서 키 입력을 하나 읽는다.
#include <stdio.h>
#include <conio.h>
int main(void) {
printf("Press any key to continue...\n");
(void)_getch();
return 0;
}
C, getchar()를 사용해 Enter 입력 대기 (플랫폼 독립적)
getchar()는 표준 입력 버퍼에서 문자 1개를 읽는 함수로, 콘솔은 기본적으로 라인 버퍼(line buffered)이므로 사용자가 엔터를 눌러야 입력이 전달된 후 동작한다.
#include <stdio.h>
int main(void) {
printf("Press Enter to continue...\n");
int ch;
while ((ch = getchar()) != '\n' && ch != EOF) {}
return 0;
}
C++, cin.ignore()를 사용해 Enter 입력 대기 (플랫폼 독립적)
cin.ignore(n, delim)는 입력 스트림에서 최대 n개의 문자를 delim(ex. '\n')이 나올 때까지 건너뛰는 함수로, Enter 입력을 기다리고, Enter가 눌렸을 때 입력 버퍼를 정리하는 데 적합하다.
#include <iostream>
int main(void)
{
std::cout << "Press Enter to continue..." << std::endl;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
return 0;
}
반응형
'프로그래밍 > C' 카테고리의 다른 글
| C ] Data Types Range (0) | 2023.09.15 |
|---|---|
| extern "C" {} (0) | 2023.07.18 |
| C ] 포인터와 const (0) | 2023.05.30 |
| C ] 비트필드(Bit Field)와 공용체(Union) 사용 (0) | 2023.05.29 |
| C언어 ] setjmp(), longjmp() (2) | 2023.05.07 |