Lecture des données de l'entrée standard jusqu'à la fin du fichier (EOF) en C
Lorsque vous travaillez avec une entrée utilisateur en C, il est souvent nécessaire pour lire les données de l'entrée standard (cin) jusqu'à ce que la fin du fichier (EOF) soit atteinte. Il existe certaines limitations et approches à prendre en compte lorsque vous tentez de lire jusqu'à EOF.
Une idée fausse courante est que l'utilisation de cin.get(input, ' ') pour lire des données jusqu'à EOF ou le caractère nul (' ') est rencontré peut atteindre le résultat souhaité. Cependant, ' ' ne représente pas EOF, et cette approche lira jusqu'à ce que EOF ou ' ' se produise, selon la première éventualité.
Pour lire les données de cin jusqu'à EOF, il est nécessaire d'utiliser une boucle. La fonction std::getline() fournit une méthode efficace à cet effet :
std::string line; while (std::getline(std::cin, line)) { std::cout << line << std::endl; }
std::getline() lit l'entrée de cin et la stocke dans la variable de chaîne spécifiée, le délimiteur par défaut étant le caractère de nouvelle ligne. Il renvoie une valeur booléenne indiquant si une ligne a été lue avec succès. Lorsqu'EOF est rencontré, std::getline() renvoie false, provoquant la fin de la boucle.
Bien que cela puisse sembler une limitation d'exiger une boucle lors de la lecture jusqu'à EOF, il est important de se rappeler qu'en C , EOF n'est pas un personnage en soi. En tant que tel, il est impossible de faire simplement un seul appel à std::getline() pour lire toutes les données jusqu'à EOF.
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!