Det her har intet med stavefejl at gøre.. Problemt er at Cin>>name; ikke kan tage mellemrum. Så hvis man skal indtaste sit navn i en string skal det gøres anderledes..
Linien hvor du læser tallet er ikke slut, så derfor tager getline resten - og den er sikkert tom. Du kan spole videre til næste linie med en ekstra cin.getline(navn,20); lige efter du har erklæret navn.
Du skriver at cin>> ikke er færdig, hvordan skal det forstås? Der er både semikolan og en cout<< bagefter cin>>. Så at den ikke skulle være færdig med at tage tal ind fatter jeg ikke??
Prøv at se på denne linie bestående af cifrene 7913 samt CR og LF (carriage return og line feed, dvs. slut på en linie). Maskinen holder styr på hvor langt du er kommet med din læsning, og lad mig illustrere det med en * - det er altså ikke et tegn. Jeg skriver også CR og LF som <CR> og <LF>, men de er altså blot et tegn hver. Ved starten er det
*7913<CR><LF>
så beder du om cin>>valg, som er en int, og så læse den tallet, så længe der er noget der ligner et tal:
7913*<CR><LF>
Vi står altså lige før linieskiftet. Så kommer getline, og skal læse det der står på linien hen til linieskiftet. Fint, siger den, det var nemt, 0 tegn, så jeg afleverer den tomme streng, og spoler forbi linieskiftet:
Det lyder lidt rodet det der.. Du siger at selvom taster et tal ind ved cin>> valg; og derefter trykker enter, ja så står cin>>valg; altså stadig åben for indtastning af tal?? Der er der ingen problemer med at lave to cin>> efter hinanden..
Hvis du laver 2 cin>>etelleandettal lige efter hinanden start de begge to med at lede efter cifre. Dvs. nummer 2 skipper stille og roligt blanke og linieskift, som det nu er nødvendigt. Det er faktisk noget rod. Jeg kan forstå det, men ikke li\' det, så jeg læser gerne en linie af gangen, f.x. med getline. Den skipper til efter linieskiftet.
Ja, så får du en streng med cifre - og så skal du lave den om til en int. Det er der noget indbygget til - kan ikke huske det lige nu for C++..... (har heller ikke lige tid....)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.