SALVARE DATI IN UN FILE
Salve a tutti...ho un dubbio per quanto riguarda i file nella programmazione in C.
Non riesco a salvare nessun dato con lo spazio.Cerco di spiegarmi meglio..
se io provo a salvare la stringa "CIAO A TUTTI", quando apro il file leggo solo "CIAO" se invece scrivo tutto attaccato,senza spazi mi salva l'intera frase..
Non capisco a cosa sia dovuto..scusate la domanda stupida, ma non ho mai programmato prima di questo corso ed i file li abbiamo fatti in una sola lezione..molto in fretta..
ringrazio già per gli eventuali aiuti
Non riesco a salvare nessun dato con lo spazio.Cerco di spiegarmi meglio..
se io provo a salvare la stringa "CIAO A TUTTI", quando apro il file leggo solo "CIAO" se invece scrivo tutto attaccato,senza spazi mi salva l'intera frase..
Non capisco a cosa sia dovuto..scusate la domanda stupida, ma non ho mai programmato prima di questo corso ed i file li abbiamo fatti in una sola lezione..molto in fretta..
ringrazio già per gli eventuali aiuti

Risposte
Senza il codice è impossibile risponderti, ma gli innumerevoli programmi scritti in C in grado di gestire file dovrebbero dimostrarti che il problema non è nella libreria ma nell'uso che ne fai. Qualsiasi funzione che scrive stringhe su file è in grado di fare quello che chiedi, quindi credo che il problema sia da qualche altra parte.
Stai leggendo la tua stringa usando la funzione scanf? (:evil: Odio profondamente tutti i professori e le guide che insegnano questa funzione deprecata e sconsigliata da qualsiasi guida di stile..) Se questo fosse il caso, allora sostituiscila con fgets e vedrai che tutti i tuoi problemi saranno magicamente risolti.
Stai leggendo la tua stringa usando la funzione scanf? (:evil: Odio profondamente tutti i professori e le guide che insegnano questa funzione deprecata e sconsigliata da qualsiasi guida di stile..) Se questo fosse il caso, allora sostituiscila con fgets e vedrai che tutti i tuoi problemi saranno magicamente risolti.
"apatriarca":
(:evil: Odio profondamente tutti i professori e le guide che insegnano questa funzione deprecata e sconsigliata da qualsiasi guida di stile..)



Rassegnati, purtroppo continuerà. Forse essi ignorano a cosa servono:
NAME scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf - input format conversione le usano quando hanno bisogno di
NAME fgetc, fgets, getc, getchar, gets, ungetc - input of characters and strings
PS. Addirittura "deprecata"? Quali linee di stile, intendi per l'input da tastiera?
"Rggb":
PS. Addirittura "deprecata"? Quali linee di stile, intendi per l'input da tastiera?
Forse ho un po' esagerato a definirla deprecata (anche se per Visual C++ lo è..) in quanto è ancora presente nello standard e non sembra verrà eliminata in qualche versione futura (neanche del C++ a quanto ne so). In effetti è la gets la funzione che più di ogni altra dovrebbe essere eliminata, ma per fortuna non viene insegnata..

In un caso come questo, in cui si deve leggere una riga di testo dalla console, allora il metodo migliore è quello di usare fgets. Ma spesso la riga che viene letta da stdin deve essere interpretata e non solo letta. La lettura in questo caso è meglio farla in due passaggi. Prima si ottiene l'input da tastiera e lo si memorizza in un buffer e in seguito si effettua il parsing. Il parsing può essere anche effettuato usando sscanf. Questa ultima funzione ha infatti il vantaggio di lavorare in un ambiente (una stringa) più controllato e non ha quindi molti dei difetti della versione per console.