Maison  >  Article  >  développement back-end  >  Comment les programmes C peuvent-ils récupérer efficacement les entrées de l'utilisateur jusqu'à la fin du fichier (EOF) ?

Comment les programmes C peuvent-ils récupérer efficacement les entrées de l'utilisateur jusqu'à la fin du fichier (EOF) ?

DDD
DDDoriginal
2024-11-18 05:16:02612parcourir

How Can C   Programs Efficiently Retrieve User Input Until End-of-File (EOF)?

Récupération des entrées jusqu'à la fin du fichier (EOF) à l'aide de C

De nombreux programmes nécessitent la possibilité de lire un flux continu de données à partir de l'utilisateur jusqu'à ce qu'il ait fini de le saisir. En C , cela peut être réalisé par diverses méthodes.

Considérant la méthode cin.get()

Initialement, la fonction cin.get() a été considérée, ce qui permet lecture jusqu'à ce qu'un caractère spécifié soit rencontré. Cependant, utiliser « » comme caractère cible n'est peut-être pas idéal car cela peut mettre fin prématurément à la saisie avant d'atteindre EOF.

Approche en boucle : la méthode préférée

L'approche recommandée consiste à utiliser des boucles pour lire les entrées de manière incrémentielle. Un moyen efficace de le faire consiste à utiliser la fonction std::getline() :

std::string line;
while (std::getline(std::cin, line))
{
    std::cout << line << std::endl;
}

Ici, getline() lit les chaînes jusqu'à rencontrer un caractère de nouvelle ligne par défaut. Il peut également être personnalisé pour lire jusqu'à un caractère spécifique, mais EOF lui-même n'est pas un caractère valide à cette fin.

Cette approche itérative permet au programme de lire en continu les lignes d'entrée de l'utilisateur jusqu'à ce qu'il indique qu'il a fini. Il est à la fois fiable et efficace pour gérer des scénarios d'entrée de longueur variable.

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