C++에서 프로그램을 일시 중지하는 방법

Jinku Hu 2023년10월12일
  1. getc()함수를 사용하여 프로그램 일시 중지
  2. std::cin::get()메서드를 사용하여 프로그램을 일시 중지합니다
  3. getchar()함수를 사용하여 프로그램 일시 중지
C++에서 프로그램을 일시 중지하는 방법

이 기사에서는 C++에서 프로그램을 일시 중지하는 방법에 대한 몇 가지 방법을 설명합니다.

getc()함수를 사용하여 프로그램 일시 중지

getc()함수는 C 표준 입출력 라이브러리에서 가져 왔으며 주어진 입력 스트림에서 다음 문자를 읽습니다. 입력 스트림은 FILE *유형이며 함수는 스트림이 열릴 것으로 예상합니다. 거의 모든 Unix 시스템에서 프로그램 시작 중에 stdin, stdoutstderr의 3 가지 표준 파일 스트림이 열립니다. 다음 예에서는 사용자가 프로그램 실행을 계속할 때까지 기다리기 위해 콘솔 입력에 해당하는 stdin을 인수로 전달합니다.

#include <chrono>
#include <iostream>
#include <thread>

using std::copy;
using std::cout;
using std::endl;
using std::this_thread::sleep_for;
using namespace std::chrono_literals;

int main() {
  int flag;
  cout << "Program is paused !\n"
       << "Press Enter to continue\n";

  // pause the program until user input
  flag = getc(stdin);

  cout << "\nContinuing .";
  sleep_for(300ms);
  cout << ".";
  cout << ".";
  cout << ".";
  cout << "\nProgram finished with success code!";

  return EXIT_SUCCESS;
}

출력:

Program is paused !
Press Enter to continue

Continuing ....
Program finished with success code!

std::cin::get()메서드를 사용하여 프로그램을 일시 중지합니다

프로그램을 일시 중지하는 또 다른 방법은 매개 변수에 지정된대로 입력 스트림에서 문자를 추출하는std::cin 내장 메소드get을 호출하는 것입니다. 이 경우 단일 문자를 읽고 실행중인 프로그램에 제어를 반환합니다.

#include <chrono>
#include <iostream>
#include <thread>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;
using std::this_thread::sleep_for;
using namespace std::chrono_literals;

int main() {
  int flag;
  cout << "Program is paused !\n"
       << "Press Enter to continue\n";

  // pause the program until user input
  flag = cin.get();

  cout << "\nContinuing .";
  sleep_for(300ms);
  cout << ".";
  cout << ".";
  cout << ".";
  cout << "\nProgram finished with success code!";

  return EXIT_SUCCESS;
}

getchar()함수를 사용하여 프로그램 일시 중지

다른 방법으로getchar 함수 호출로 동일한 기능을 다시 구현할 수 있습니다. getchar는 콘솔 입력 스트림에서 다음 문자를 읽는getc(stdin)에 대한 동등한 호출입니다.

두 함수 모두 EOF를 반환하여 파일 끝에 도달했음을 나타냅니다. 즉, 읽을 수있는 문자가 없습니다. 프로그래머는 예외적 인 제어 흐름과 반환 된 오류 코드를 처리 할 책임이 있습니다.

#include <chrono>
#include <iostream>
#include <thread>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;
using std::this_thread::sleep_for;
using namespace std::chrono_literals;

int main() {
  int flag;
  cout << "Program is paused !\n"
       << "Press Enter to continue\n";

  // pause the program until user input
  flag = getchar();

  cout << "\nContinuing .";
  sleep_for(300ms);
  cout << ".";
  cout << ".";
  cout << ".";
  cout << "\nProgram finished with success code!";

  return EXIT_SUCCESS;
}
작가: 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