PDA

View Full Version : [c] file di testo...


Zero Two
12-01-2006, 10:29
in questo programma (http://www.rafb.net/paste/results/STLCDV33.html)

creò un file chiamato pippo.txt,dove prima viene salvata la stringa str e poi viene aggiunta un'altra stringa aprendo il file in append,poi viene stampato il contenuto del file.

i problemi sono due:se scrivo una frase con spazi il programma non funzona es:
scrivo 'ciao' , tutto ok la stringa viene salvata,invece, se scrivo 'ciao mondo' il programma non va.
Il secondo problema è quando si legge il file mi stampa 2 volte l'ultima riga es:
il file:
ciao
mondo

lui stampa a video:
ciao
mondo
mondo

qualcuno può aiutarmi?

kk3z
12-01-2006, 14:55
scanf con %s legge una stringa alla volta, quindi per leggere "ciao mondo" dovresti usare
scanf("%s %s", stringa);

Per ottenere l'intera riga fino a un newline (\n, invio), devi usare gets()

Anche con il file dovresti usare fgets() per ottenere l'intera riga invece di usare fscanf (a meno che il file non abbia una struttura uguale per ogni riga)

Zero Two
12-01-2006, 15:28
prima di tutto grazie per aver risposto... :)

ho modificato il codice (http://www.rafb.net/paste/results/jl9khF64.html)
allora il primo problema credo di averlo risolto, ma non riesco ad usare bene la fgets(), mi stampa sempre due volte l'ultima riga.