Maison >développement back-end >C++ >`std::cin vs std::cin.getline() : quand utiliser chacun pour l'entrée C ?`

`std::cin vs std::cin.getline() : quand utiliser chacun pour l'entrée C ?`

Susan Sarandon
Susan Sarandonoriginal
2024-12-01 06:23:11349parcourir

`std::cin vs. std::cin.getline(): When to Use Each for C   Input?`

Les différences entre std::cin.getline() et std::cin

Lorsque vous travaillez avec des entrées et des sorties en C, c'est important de comprendre les distinctions entre std::cin et std::cin.getline() fonctions.

std::cin : entrée pour des mots et des nombres uniques

std::cin est un flux d'entrée qui peut être utilisé pour lire un seul mot ou un seul nombre à partir du périphérique d'entrée standard (généralement le clavier).

std::cin.getline() : entrée pour l'intégralité Lignes

En revanche, std::cin.getline() est une méthode qui peut être utilisée pour lire une ligne entière de caractères à partir du flux d'entrée. Cela inclut tous les espaces, signes de ponctuation ou caractères de nouvelle ligne jusqu'à la fin de la ligne (représentés par un « n »).

Différences clés :

  1. Limite de caractères : std::cin ne lira qu'un seul mot ou chiffre, tandis que std::cin.getline() peut lire plusieurs caractères, y compris une ligne entière.
  2. Caractère de nouvelle ligne : std::cin arrête la lecture au premier caractère de nouvelle ligne, alors que std::cin.getline() inclut la nouvelle ligne dans la chaîne.
  3. Buffer : std::cin fonctionne sur un tampon, donc tous les caractères saisis avant de l'appeler seront stockés. std::cin.getline(), cependant, lit directement à partir du flux d'entrée, en ignorant les caractères pré-stockés.

Exemples d'utilisation :

// Read a single word from the input
std::string word;
std::cin >> word;

// Read an entire line from the input
std::string line;
std::getline(std::cin, line);

Conclusion :

Selon le scénario, soit std::cin ou std::cin.getline() peut être approprié. Si vous avez besoin de lire un seul mot ou un seul chiffre, std::cin est plus efficace. Cependant, si vous devez capturer une ligne entière d'entrée, y compris les espaces et les nouvelles lignes, std::cin.getline() est le choix préféré.

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