Validation af inputs c++ Visual Studio
Hej, jeg har op til flere gange brugt følgende funktioner til at validere inputs uden rigtigt at vide præcist, hvad de forskellige funktioner gør. Derfor vil jeg sætte stor pris på en detaljeret beskrivelse af nedstående tre funktioner.cin.fail();
Som jeg har forstået, så returnerer denne funktion true, hvis vi forsøger at gemme en korrekt værdi i bufferen og false, hvis vi forsøger at gemme en forkert værdi. F.eks. vil funktionen returnere false, hvis vi har allokeret plads i bufferen til en integer datetype og forsøger at gemme en char værdi. Lige et offtopic spørgsmål, når man generelt skriver hukommelsen, så menes der bufferen ikke?
cin.clear();
Denne funktion sletter indholdet af vores input stream (jeg aner ikke hvordan det skal formuleres, for jeg forstår ikke helt, hvad der sker andet end, at det man gemmer ryger i bufferen), således, at cin.fail() igen er nulstillet, så vi kan indtaste en ny værdi?
cin.ignore( x, '\n' );
Afhængig af x, så ignorer denne funktion de tal og bogstaver, som står i bufferen og "\n" ignorer linjeskift, således at vores output stream ikke ændrer tilstand efter en forkert indtastning, indtil f.eks. vi har indtastet en korrekt værdi.
Er jeg helt forkert på den eller?
På forhånd tak for hjælpen.