C++에서 사용자 입력을 기다리는 방법
-
cin.get()
메서드를 사용하여 사용자 입력을 기다립니다 -
getchar
함수를 사용하여 사용자 입력 대기 -
getc
함수를 사용하여 사용자 입력 대기 -
사용자 입력을 기다리기 위해
system("pause")
사용하지 않기
이 기사에서는 사용자 입력을 기다리는 C++ 메서드를 소개합니다. 다음 자습서에서는 사용자 입력 내용이 프로그램 실행과 관련이 없다고 가정합니다.
cin.get()
메서드를 사용하여 사용자 입력을 기다립니다
get()
은std:cin
멤버 함수로, 스트림에서 문자를 추출하는>>
입력 연산자와 거의 유사합니다. 이 경우 사용자 입력 처리에 관심이없고wait
기능 만 구현하면되는 경우 인수없이get
함수를 호출 할 수 있습니다. 그러나이 함수는 Enter 키를 누르면 반환됩니다.
#include <iostream>
#include <vector>
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;
int main() {
vector<char> arr = {'w', 'x', 'y', 'z'};
int flag;
flag = cin.get();
for (auto const& value : arr) cout << value << "; ";
cout << "\nDone !" << endl;
return EXIT_SUCCESS;
}
출력:
w; x; y; z;
Done !
getchar
함수를 사용하여 사용자 입력 대기
getchar
함수는 입력 스트림 (stdin
)에서 단일 문자를 읽기위한 C 표준 라이브러리 함수입니다. 앞의 것과 마찬가지로이 메서드는 반환 할 새 줄 문자 (즉, Enter 키를 누름)를 예상합니다. getchar
는 오류가 발생하거나 스트림이 끝날 때 eof
를 반환합니다.
#include <iostream>
#include <vector>
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;
int main() {
vector<char> arr = {'w', 'x', 'y', 'z'};
int flag;
flag = getchar();
for (auto const& value : arr) cout << value << "; ";
cout << "\nDone !" << endl;
return EXIT_SUCCESS;
}
getc
함수를 사용하여 사용자 입력 대기
대안으로 위의 예를getc
함수로 대체 할 수 있습니다. getc
는 주어진 입력 스트림에서 읽기 위해FILE *stream
인수를 전달하지만이 경우 터미널 입력과 일반적으로 관련된 표준 입력 스트림 인stdin
을 전달합니다. 이 함수는 Enter키를 눌렀을 때도 반환됩니다.
#include <iostream>
#include <vector>
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;
int main() {
vector<char> arr = {'w', 'x', 'y', 'z'};
int flag;
flag = getchar();
for (auto const& value : arr) cout << value << "; ";
cout << "\nDone !" << endl;
return EXIT_SUCCESS;
}
사용자 입력을 기다리기 위해system("pause")
사용하지 않기
system
함수는 쉘 명령을 실행하는 데 사용되며 명령 이름은 문자열 리터럴로 전달됩니다. 따라서pause
가 인수로 전달되면 해당 명령을 실행하려고 시도합니다. 이는 Windows 플랫폼에서만 사용할 수 있습니다. system("pause")
의 이식 불가능한 방법을 사용하는 것보다 위에 나열된 메소드로 사용자 정의 대기 기능을 구현하는 것이 가장 좋습니다.
#include <iostream>
#include <vector>
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;
int main() {
vector<char> arr = {'w', 'x', 'y', 'z'};
int flag;
system("pause");
for (auto const& value : arr) cout << value << "; ";
cout << "\nDone !" << endl;
return EXIT_SUCCESS;
}
출력:
sh: 1: pause: not found
w; x; y; z;
Done !
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook