La función getline() en C++ se usa para leer una string o una línea del flujo de entrada. La función getline() no ignora los espacios en blanco iniciales. Por lo tanto, se debe tener especial cuidado al usar getline() después de cin porque cin ignora los espacios en blanco y los deja en la transmisión como basura.
Programa 1:
A continuación se muestra el programa C++ para ilustrar lo mismo:
C++
// C++ program for the above problem #include <iostream> using namespace std; // Driver Code int main() { int fav_no; string name; cout << "Type your favorite number: "; // The cin statement uses the // fav_no and leaves the \n // in the stream as garbage cin >> fav_no; cout << "Type your name : "; // getline() reads \n // and finish reading getline(cin, name); // In output only fav_no // will be displayed not // name cout << name << ", your favourite number is : " << fav_no; return 0; }
Producción:
Explicación:
La solución para resolver el problema anterior es usar algo que extraiga todos los espacios en blanco después de cin . std::ws en C++ para hacer lo mismo. En realidad, esto se usa con el operador «>>» en los flujos de entrada.
Programa 2:
A continuación se muestra el programa C++ para ilustrar la solución para el problema anterior:
C++
// C++ program for the above solution #include <iostream> using namespace std; // Driver Code int main() { int fav_no; string name; cout << "Type your favourite number: "; cin >> fav_no; cout << "Type your name: "; // Usage of std::ws will extract // all the whitespace character getline(cin >> ws, name); cout << name << ", your favourite number is : " << fav_no; return 0; }
Producción:
Publicación traducida automáticamente
Artículo escrito por rogetsgeneral7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA