Maison >développement back-end >C++ >Quelle est la différence entre `std::cin` et `std::cin.getline()` pour la lecture de chaînes en C ?

Quelle est la différence entre `std::cin` et `std::cin.getline()` pour la lecture de chaînes en C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-14 00:09:11386parcourir

What's the Difference Between `std::cin` and `std::cin.getline()` for Reading Strings in C  ?

Comprendre std::cin.getline() et sa distinction avec std::cin

std::iostream fournit un large éventail de mécanismes pour les opérations d’entrée/sortie. Parmi eux, std::cin sert d'objet d'entrée standard, offrant des méthodes et des fonctions pour accéder aux données de caractères. Cependant, lorsqu'il s'agit de lire des chaînes ou des lignes, l'utilité de std::cin est surpassée par la méthode spécialisée std::cin.getline().

std::cin.getline() : Une plongée dans ses fonctionnalités

std::cin.getline() est une méthode unique à std::cin et aux objets similaires qui permet la lecture efficace des caractères données. Elle fonctionne sur deux arguments : un nombre maximum de caractères et la destination où sont stockées les données lues.

Cette méthode termine le processus de lecture sous trois conditions distinctes :

  1. Rencontrer la fin de une ligne
  2. Épuisement des caractères de saisie disponibles
  3. Atteindre le caractère maximum spécifié limit

Distinguer std::cin de std::cin.getline()

Bien que std::cin fournisse un moyen pratique de lire des caractères individuels, il n'a pas la capacité de gérer les entrées basées sur les lignes avec élégance. std::cin.getline() comble cette lacune en se spécialisant dans la lecture de lignes entières de caractères, garantissant que les chaînes ou les entrées de plusieurs mots sont capturées avec précision.

Options de saisie alternatives utilisant std::cin

En plus de std::cin.getline(), std::cin prend en charge une variété d'autres méthodes de saisie, y compris :

  • std::cin >> s ; - Lit un seul mot dans la variable chaîne 's'
  • std::cin >> je; - Lit un seul nombre dans la variable entière 'i'
  • std::getline(std::cin, s); - Lit une ligne entière dans la variable chaîne 's' (équivalent à std::cin.getline() sans limite de caractères)
  • std::cin.ignore(100); - Ignore les 100 caractères suivants dans le flux d'entrée

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