Maison >développement back-end >C++ >Pourquoi utiliser « getline(cin, x) » pour obtenir une entrée complète de l'utilisateur ?

Pourquoi utiliser « getline(cin, x) » pour obtenir une entrée complète de l'utilisateur ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-20 11:32:50957parcourir

Why Use `getline(cin, x)` to Get Complete User Input?

Comment obtenir une entrée utilisateur complète avec getline(cin, x)

En programmation, la lecture des entrées utilisateur est une tâche fondamentale. Bien que cin puisse être utilisé pour récupérer des caractères ou des mots individuels, son utilité peut être limitée lorsqu'il s'agit de lignes complètes de texte. Pour résoudre ce problème, une approche plus appropriée est nécessaire.

Considérez le code suivant, où l'utilisateur est invité à écrire dans un fichier :

#include <iostream>
#include <cstdlib>
#include <cstring>
#include <fstream>

using namespace std;

int main() {
  char x;

  cout << "Would you like to write to a file?" << endl;
  cin >> x;
  if (x == 'y' || x == 'Y') {
    string y;
    cout << "What would you like to write?" << endl;
    getline(cin, y);  // Replace cin >> y;
    ofstream file;
    file.open("Characters.txt");
    file << strlen(y) << " Characters." << endl;
    file << endl;
    file << y;
    file.close();

    cout << "Done. \a" << endl;
  } else {
    cout << "K, Bye." << endl;
  }

  return 0;
}

Dans le code d'origine, la ligne cin>> oui ; ne lirait qu'un seul mot plutôt que la ligne entière de texte saisie par l'utilisateur. Pour remédier à cela, la fonction cin doit être modifiée en getline(cin, y);.

La fonction getline() vous permet de lire une ligne complète d'entrée à partir de l'entrée standard (c'est-à-dire le clavier de l'utilisateur) et stockez-le dans la variable chaîne y. Cela garantit que le code suivant peut accéder à la ligne complète de texte saisie par l'utilisateur, vous permettant de l'écrire dans un fichier ou d'effectuer d'autres opérations selon vos besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn