C++에서 사용자 입력을 기다리는 방법

Jinku Hu 2023년10월12일 C++ C++ Wait
  1. cin.get()메서드를 사용하여 사용자 입력을 기다립니다
  2. getchar 함수를 사용하여 사용자 입력 대기
  3. getc 함수를 사용하여 사용자 입력 대기
  4. 사용자 입력을 기다리기 위해system("pause")사용하지 않기
C++에서 사용자 입력을 기다리는 방법

이 기사에서는 사용자 입력을 기다리는 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 !
튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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