Tellan Skrevet 10. oktober 2008 Del Skrevet 10. oktober 2008 (endret) Eg lager eit program der eg skal skriva inn eit ord, og ei forklaring på ordet. Sagt med andre ord, eg lage ei ordbok. Problemet har eg i denne while løkka, eg kan skriva inn ord og forklaring første gangen løkka kjører, men etter det kan eg berre skriva inn forklaring. Eg bytta om slik at skriv inn ord kom etter skriv inn forklaring, då kunne eg berre skriva inn ordet. Programmet fungerer slik det skal dersom eg ser vekk frå dette, her er while løkka: do { nummer++; cout << "Ord" << endl; cin.getline(o,maks_ord); ordbok[nummer].set_ord(o); cout << "Forklaring" << endl; cin.getline(f,maks_forklaring); ordbok[nummer].set_forklaring(f); cout << "1 for å avslutta" << endl; cin >> valg; }while(valg!=1); Her kjeme set forklaring funksjonen, set_ord er heilt lik denne. void Ordbok::set_forklaring(char f[]) { int i_f=0; while(true) { if(f[i_f]=='' or i_f>=maks_forklaring) break; else forklaring[i_f]=f[i_f]; i_f++; } } Nokon som veit kva som kan vera gale? Edit: Har brukt class Ordbok ordbok[ordbok_lengde]; lengden er 100. ord og forklaring er private char*, setter dei som ord=new char[20] og tilsvarande for forklaring i konstruktøren Endret 10. oktober 2008 av Tellan Lenke til kommentar
x871kx6167ss7 Skrevet 10. oktober 2008 Del Skrevet 10. oktober 2008 (endret) Jeg vil tippe det er fordi at etter du har lest inn valg, så ligger en newline å "venter" i stdin, og denne vil da gjøre at den første readlinen bare leser "\n" med en gang. For å løse dette kan du flushe stdin på en eller anne måte som jeg ikke husker nå. Endret 10. oktober 2008 av Blackslash Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå