05. april 2008 - 20:48Der er
9 kommentarer og 1 løsning
Sætning fra fil i C
Hej alle.
Jeg er ved at programmere et Hangman-spil i C. I det her tilfælde bliver det sætninger man skal gætte. Disse sætninger kommer fra en fil.
Jeg vil så lave et tilfældigt tal (interval: et tal for hver sætning) så jeg kan få en tilfældig sætning hver gang. For ikke at få samme talrække ved hver programstart benytter jeg "time":
srand(time(NULL)); randomTal = rand() % 6;
Nu skal jeg så indlæse den tilfældige sætning ud fra dette tal, og her opstår problemmet... :-S
Jeg har selv rodet med følgende:
do { c = fgetc(RandomListe); if(c == '.') { n++; while(n==randomTal) { seek=fseek(RandomListe,0L,SEEK_CUR); tell=ftell(RandomListe);
Lad os antage det tilfældige tal er 2. Jeg bruger altså et punktum til at indikere hvor en sætning slutter, når jeg støder på nr 2 punktum gemmer jeg denne placering. Men hvordan får jeg nu indlæst den sætning....
ideen er at: - hver sætning er en linie i filen - sætningerne/linierne nummererer 0..N-1
hvis vi kalder lineread med lineno=3 så kører for løkken fra 0 til og med 3
d.v.s. at vi læser:
sætning med index 0 sætning med index 1 sætning med index 2 sætning med index 3
vi læser altid ind i buf d.v.s. buf indeholder det sidst læste - i dette tilfælde sætning med index 3, som er det vi skal bruge når vi vi kalder med lineno=3.
Det er ikke nødvendigvis den meste effektive måde at gøre det på, men logikken er rimelig simpel at overskue.
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.