Comprendre cin.ignore() en C
En programmation C, lors de l'utilisation de l'entrée standard (cin), il est parfois nécessaire d'utiliser la commande cin.ignore() pour éviter de sauter les entrées de l'utilisateur. Cette commande est utilisée pour supprimer les caractères du tampon d'entrée, garantissant que la commande cin ou getline suivante lit correctement l'entrée prévue.
Pour illustrer ce besoin, considérons le scénario suivant. Sans utiliser cin.ignore(), le programme ignore la demande de chaîne et passe immédiatement à l'invite suivante. En effet, le caractère « n » (nouvelle ligne) saisi après la saisie numérique reste dans le tampon d'entrée. Les opérations cin suivantes consomment ce « n », empêchant le programme de lire correctement la chaîne d'entrée.
La commande cin.ignore() résout ce problème en supprimant un nombre spécifié de caractères (ou jusqu'à ce qu'un délimiteur spécifié soit atteint ) à partir du tampon d'entrée. Dans l'exemple de code fourni, la ligne suivante est utilisée :
cin.ignore(256, '\n');
Cette commande demande au programme de sauter 256 caractères ou jusqu'à ce qu'il rencontre un caractère « n » dans le tampon d'entrée. Ce faisant, il efface l'entrée précédente et garantit que l'opération getline suivante lit correctement la chaîne saisie par l'utilisateur.
Prédire quand utiliser cin.ignore() nécessite de comprendre comment l'entrée est gérée en C . Lors de l'utilisation de cin, toutes les opérations d'entrée partagent un tampon commun. Après l'exécution d'une opération cin, tous les caractères restants, y compris les espaces et « n », restent dans la mémoire tampon. Si une opération cin ultérieure est tentée sans vider le tampon, ces caractères interféreront avec la nouvelle entrée. Par conséquent, il est nécessaire d'utiliser cin.ignore() chaque fois qu'il existe une possibilité de données non traitées dans le tampon qui pourraient affecter le prochain appel 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!