En este artículo, discutiremos cómo leer una string después de leer un número entero.
Programa 1:
A continuación se muestra el programa que ingresa una string con espacios justo después de ingresar un número entero :
C++
// C++ program that inputs a string // with spaces just after taken an // input of an integer #include <iostream> #include <string> using namespace std; // Driver Code int main() { int t = 0; cin >> t; string s; // Taking input with spaces getline(cin, s); cout << "You entered : " << s << "\n"; return 0; }
Producción:
Explicación:
- En el código anterior, la variable de string S no puede almacenar nuestra entrada.
- La razón de esto es que, al ingresar el entero T y presionar enter, el carácter de nueva línea (\n) no se almacenó en la variable entera T.
- En su lugar, este carácter de nueva línea se almacenó en la siguiente variable de string S .
- Por lo tanto, cuando se muestra la string S , da salida como espacios en blanco. Esto es cierto incluso si el tipo de datos que precede a la string no es int . Puede ser cualquier tipo de datos además de int.
- Tan pronto como se presiona enter, el carácter de nueva línea se almacenará en la string que se está ingresando.
Programa 2: En C++ , la función ignore() tiene en cuenta la anulación del carácter de nueva línea adicional que se genera al presionar «enter». A continuación se muestra el programa C++ que ilustra el uso de la función ignore() :
C++
// C++ program to illustrate the use // of the function ignore() #include <iostream> #include <string> using namespace std; // Driver Code int main() { int t = 0; cin >> t; // Adding the ignore() cin.ignore(); string s; getline(cin, s); cout << "You entered : " << s << "\n"; return 0; }
Producción: