La gestion des entrées en C peut être délicate, en particulier lorsqu'il s'agit à la fois de nombres et de chaînes. Les développeurs rencontrent souvent un problème lorsqu'un programme ignore la saisie d'une chaîne, ce qui entraîne un comportement inattendu. C'est là que la mystérieuse fonction cin.ignore() entre en jeu.
Pour comprendre la nécessité de cin.ignore(), approfondissons les subtilités de l'entrée C. Lorsqu'un utilisateur saisit un nombre suivi d'une chaîne (séparée par des espaces), le flux cin lit le nombre avec succès. Cependant, lorsqu'il essaie de lire la chaîne à l'aide de getline, il tombe sur le caractère de nouvelle ligne (« n ») laissé dans le tampon d'entrée après la saisie du nombre. getline interprète cette nouvelle ligne comme la fin de l'entrée, ce qui l'oblige à ignorer la chaîne.
cin.ignore() fournit une solution en supprimant le nombre spécifié de caractères du tampon d'entrée jusqu'à un délimiteur spécifié (généralement 'n' pour nouvelle ligne). Dans le code fourni :
cin.ignore(256, '\n');
la fonction ignore jusqu'à 256 caractères (une limite généreuse) ou jusqu'à ce qu'elle rencontre une nouvelle ligne, selon la première éventualité. Cela efface le tampon d'entrée, supprime la nouvelle ligne restante et permet à getline de lire la chaîne correctement.
Il est important de noter que cin.ignore() ne se limite pas à résoudre le problème des chaînes qui suivent des nombres. Il a des applications plus larges, telles que la gestion des entrées non valides ou l'omission de caractères spécifiques dans le flux d'entrée. Cependant, son utilisation principale est d'éviter les sauts inattendus dans les entrées de chaîne causés par des caractères restants dans le tampon 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!