web-dev-qa-db-fra.com

cin.ignore (numeric_limits <streamsize> :: max (), '\ n')

Que signifie cette ligne cin.ignore(numeric_limits<streamsize>::max(), '\n') dans la programmation C++? Est-ce que cela ignore réellement la dernière entrée de l'utilisateur? 

15
Zyi

Cette ligne ignore le reste de la ligne actuelle, jusqu'à '\n' ou EOF - selon la première éventualité:

  • '\n' définit le délimiteur, c’est-à-dire le caractère après lequel cin arrête d’ignorer
  • numeric_limits<streamsize>::max() définit le nombre maximum de caractères à ignorer. Comme il s'agit de la limite supérieure de la taille d'un flux, vous indiquez à cin qu'il n'y a pas de limite au nombre de caractères à ignorer.
17
dasblinkenlight

cin.ignore (numeric_limits <streamsize> :: max (), '\ n');

Ici, le \n fait office de délimiteur .... c’est le point auquel le code doit être ignoré (sous la forme "\ n" dans ce cas particulier). Et max() définit qu'il n'y a pas de limite à ce que l'on peut ignorer, les espaces, les tabulations doivent être ignorés jusqu'à la fin de la ligne.

0
Akash sharma