Leer una string después de leer un entero

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:

Publicación traducida automáticamente

Artículo escrito por hritvikc y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *