C++에서 프로그램을 일시 중지하는 방법
이 기사에서는 C++에서 프로그램을 일시 중지하는 방법에 대한 몇 가지 방법을 설명합니다.
getc()
함수를 사용하여 프로그램 일시 중지
getc()
함수는 C 표준 입출력 라이브러리에서 가져 왔으며 주어진 입력 스트림에서 다음 문자를 읽습니다. 입력 스트림은 FILE *
유형이며 함수는 스트림이 열릴 것으로 예상합니다. 거의 모든 Unix 시스템에서 프로그램 시작 중에 stdin
, stdout
및 stderr
의 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;
}
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