Como Pausar um Programa em C++
-
Utilize
getc()
Função para pausar o programa -
Utilize
std::cin::get()
Método para Pausar o Programa -
Utilize
getchar()
Função para Pausar o Programa
Este artigo explicará vários métodos de como pausar um programa em C++.
Utilize getc()
Função para pausar o programa
A função getc()
é da biblioteca de entrada-saída padrão C, e lê o próximo caractere do fluxo de entrada dado. O fluxo de entrada é do tipo FILE*
, e a função espera que o fluxo seja aberto. Em quase todos os sistemas Unix, durante a inicialização do programa, 3 fluxos de arquivos padrão são abertos - ou seja: stdin
, stdout
e stderr
. No exemplo a seguir, passamos o stdin
como um argumento, que corresponde a uma entrada de console, para esperar que um usuário continue a execução do programa.
#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;
}
Resultado:
Program is paused !
Press Enter to continue
Continuing ....
Program finished with success code!
Utilize std::cin::get()
Método para Pausar o Programa
Outro método para pausar um programa é chamar de std::cin
builtin method get
, que extrai caracteres do fluxo de entrada, conforme especificado pelos parâmetros. Neste caso, basta ler um único caractere e retornar o controle ao programa em execução.
#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;
}
Utilize getchar()
Função para Pausar o Programa
Como forma alternativa, pode-se reimplementar a mesma funcionalidade com a chamada de função getchar
. getchar
é a chamada equivalente a getc(stdin)
, que lê o próximo caractere do fluxo de entrada do console.
Note que ambas as funções podem retornar EOF
, indicando que o final do arquivo foi alcançado, ou seja, nenhum caractere está disponível para leitura. O programador é responsável por lidar com qualquer fluxo de controle excepcional e códigos de erro retornados.
#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