webentwicklung-frage-antwort-db.com.de

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

Was bedeutet diese bestimmte Zeile cin.ignore(numeric_limits<streamsize>::max(), '\n') in der C++ - Programmierung? Ignoriert dies tatsächlich die letzte Eingabe des Benutzers? 

15
Zyi

Diese Zeile ignoriert den Rest der aktuellen Zeile bis zu '\n' oder EOF - je nachdem, was zuerst eintritt:

  • '\n' legt den Begrenzer fest, d. h. das Zeichen, nach dem cin aufhört zu ignorieren
  • numeric_limits<streamsize>::max() legt die maximale Anzahl der zu ignorierenden Zeichen fest. Da dies die Obergrenze für die Größe eines Streams ist, sagen Sie cin effektiv, dass die Anzahl der zu ignorierenden Zeichen nicht begrenzt ist.
17
dasblinkenlight

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

Der \n fungiert hier als Trennzeichen. Dies ist der Punkt, bis zu dem der Code ignoriert werden muss (in diesem Fall als "\ n"). Und max() definiert, dass es keine Begrenzung gibt, wie viel ignoriert werden kann. Die Leerzeichen und Tabulatoren müssen ignoriert werden, bis die Zeile endet.

0
Akash sharma