Lecture de données à partir d'une entrée standard jusqu'à la fin du fichier en C
Lorsque vous travaillez avec des données directement à partir d'une entrée utilisateur en C, il est souvent Il est souhaitable de lire toutes les données jusqu'à ce que la fin du fichier (EOF) soit atteinte. La fonction cin.get() permet de lire des données jusqu'à ce qu'un caractère spécifié soit rencontré. Cependant, l'utilisation de « » comme caractère de fin n'est peut-être pas optimale car elle ne représente pas vraiment EOF.
Utiliser des boucles pour l'extraction de données
La solution la plus efficace pour la lecture des données jusqu'à ce que EOF implique l'utilisation de boucles. La fonction std::getline() est particulièrement adaptée à cet effet. Par défaut, getline() lit les données jusqu'à ce qu'un caractère de nouvelle ligne soit rencontré. Cependant, un caractère de fin alternatif peut être spécifié :
std::string line; while (std::getline(std::cin, line)) { std::cout << line << std::endl; }
Dans cet exemple, getline() lit chaque ligne de données jusqu'à ce que la fin du fichier soit atteinte. La boucle se termine lorsque getline() ne parvient pas à lire d'autres données, indiquant qu'EOF a été rencontré.
Caractère de fin alternatif
Bien que EOF ne soit pas un caractère qui peut être spécifié directement, vous pouvez utiliser une valeur sentinelle pour représenter EOF. Par exemple, vous pouvez initialiser une variable à une valeur spécifique et lire les données jusqu'à ce que cette valeur soit rencontrée :
const std::string EOF_MARKER = "EOF"; std::string line; while (getline(std::cin, line)) { if (line == EOF_MARKER) break; std::cout << line << std::endl; }
Cette approche vous permet de définir votre propre indicateur de fin de fichier, offrant une plus grande flexibilité dans votre traitement des données.
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!