Gå til innhold

cin.getline i while løkka fungerer berre første gangen


Anbefalte innlegg

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 av Tellan
Lenke til kommentar
Videoannonse
Annonse

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...