Como Pausar um Programa em C++

Jinku Hu 12 outubro 2023
  1. Utilize getc() Função para pausar o programa
  2. Utilize std::cin::get() Método para Pausar o Programa
  3. Utilize getchar() Função para Pausar o Programa
Como Pausar um Programa em C++

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;
}
Autor: 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