Cómo hacer una pausa en un programa en C++
-
Usa la función
getc()
para pausar el programa -
Use
std::cin::get()
Método para pausar el programa -
Usa la función
getchar()
para pausar el programa
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;
}
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