Cómo hacer una pausa en un programa en C++

Jinku Hu 12 octubre 2023
  1. Usa la función getc() para pausar el programa
  2. Use std::cin::get() Método para pausar el programa
  3. Usa la función getchar() para pausar el programa
Cómo hacer una pausa en un programa en C++

Este artículo explicará varios métodos de cómo pausar un programa en C++.

Usa la función getc() para pausar el programa

La función getc() es de la biblioteca de entrada-salida estándar de C, y lee el siguiente carácter del flujo de entrada dado. El flujo de entrada es del tipo FILE*, y la función espera que el flujo se abra. En casi todos los sistemas Unix, durante el inicio del programa, se abren 3 flujos de archivos estándar, a saber: stdin, stdout y stderr. En el siguiente ejemplo, pasamos stdin como argumento, que corresponde a una entrada de la consola, para esperar a que un usuario continúe la ejecución del 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!

Use std::cin::get() Método para pausar el programa

Otro método para pausar un programa es llamar std::cin al método incorporado get, que extrae los caracteres del flujo de entrada según lo especificado por los parámetros. En este caso, sólo leemos un único carácter y devolvemos el control al programa en ejecución.

#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;
}

Usa la función getchar() para pausar el programa

Como una forma alternativa, se puede reimplantar la misma funcionalidad con la llamada de la función getchar. getchar es la llamada equivalente a getc(stdin), que lee el siguiente carácter del flujo de entrada de la consola.

Tenga en cuenta que ambas funciones pueden devolver EOF, indicando que se ha alcanzado el final del archivo, es decir, que no hay caracteres disponibles para leer. El programador es responsable de manejar cualquier flujo de control excepcional y los códigos de error devueltos.

#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