lucylu Skrevet 12. oktober 2008 Del Skrevet 12. oktober 2008 Hei. Jeg programmerer i c. Jeg har et program som går i evig løkke helt til jeg skriver quit. Det skal også terminere hvis brukeren skriver Ctrl+d, noe som jeg faktisk trodde kom til å skje helt av seg selv. Det gjør det likevel ikke, og jeg har forstått det slik at Ctrl+d returnerer EOF. Har forsøkt meg med denne kodebiten, men uten hell. if (getLine(text, sizeof (text)) == EOF){ exit_program();} Hva er det jeg misser her? Jeg vet at getLine() returnerer riktig input, og at exit_program() frigjør minnet for så å terminere programmet. Noen som kan hjelpe? Mulig jeg har misforstått hvordan ctrl+d EOF egentlig fungerer? Lenke til kommentar
lucylu Skrevet 12. oktober 2008 Forfatter Del Skrevet 12. oktober 2008 Jeg forsket litt mer og flyttet testen min til getLine(), og nå terminerer programmet, dog på en litt snodig måte. Det virker som det kjører videre selv om exit_program() har blitt kalt. Da får jeg bare fortsette inn der og sjekke gangen i programmet. Tydelig at ting foregår i gal rekkefølge. Men, da virker det som om i metoden getLine (der jeg har innlesing fra tastaturet) får vi EOF, men hvis jeg returnerer en tekststreng som skal inneholde EOF så vil det bare være en tom streng istedet? Logisk, egentlig, burde ha tenkt på det tidligere.. 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å