- 10 Luglio 2012
- 1.640
- 0
- Miglior risposta
- 0
Ciao ragazzi,
ho un problemino. In pratica quello che voglio fare è trasferire alcuni dati scritti su un file in una struct, o meglio in un vettore di struct.
Mettiamo caso che il file "prova.txt" abbia come contenuto:
e che io voglia inserire i dati nella
in modo da visualizzare in ciao[0].uno la scritta "ciao", in ciao[0].due la scritta "come", in ciao[0].tre la scritta "stai" ecc...
La mia idea iniziale era quella di aprire il file in lettura, usare un array char di appoggio per fare il getline (in modo da inserire in appoggio la prima riga del file) e successivamente lavorare sull'array di appoggio.
Fin qui tutto ok.
Quindi lavoro sull'array di appoggio. Ora scandisco ogni carattere dell'array di appoggio con un ciclo while. La condizione del mio ciclo è, siccome ho usato come separatore il punto e virgola, che il ciclo si fermi quando incontra un punto e virgola.
Uso una variabile int inizializzato a zero, che mi fa capire in che campo sto agendo. Questa variabile si incrementa ogni volta che incontro un punto e virgola. All'inizio è zero quindi significa che sto lavorando su "ciao" (nel file) e sul campo ciao[0].uno (nella struct). Quando si incrementerà, il programma inserirà i caratteri nel campo ciao[0].due.
Quindi facciamo caso che io sia a inizio ciclo, e quindi dovrebbe mettermi il carattere 'c' di "ciao" in ciao[0].uno (il puntatore 'i' è una variabile che incremento ogni volta e che azzero ogni volta che incontro il punto e virgola).
Il problema è che quando compilo ed eseguo il programma, crasha.
Conoscete un altro modo per risolvere il mio problema?
Metto qui il codice che feci un paio di giorni (scusate, può darsi che sia un po' diverso dalle indicazioni che ho detto precedentemente):
file "prova.txt":
ho un problemino. In pratica quello che voglio fare è trasferire alcuni dati scritti su un file in una struct, o meglio in un vettore di struct.
Mettiamo caso che il file "prova.txt" abbia come contenuto:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
La mia idea iniziale era quella di aprire il file in lettura, usare un array char di appoggio per fare il getline (in modo da inserire in appoggio la prima riga del file) e successivamente lavorare sull'array di appoggio.
Fin qui tutto ok.
Quindi lavoro sull'array di appoggio. Ora scandisco ogni carattere dell'array di appoggio con un ciclo while. La condizione del mio ciclo è, siccome ho usato come separatore il punto e virgola, che il ciclo si fermi quando incontra un punto e virgola.
Uso una variabile int inizializzato a zero, che mi fa capire in che campo sto agendo. Questa variabile si incrementa ogni volta che incontro un punto e virgola. All'inizio è zero quindi significa che sto lavorando su "ciao" (nel file) e sul campo ciao[0].uno (nella struct). Quando si incrementerà, il programma inserirà i caratteri nel campo ciao[0].due.
Quindi facciamo caso che io sia a inizio ciclo, e quindi dovrebbe mettermi il carattere 'c' di "ciao" in ciao[0].uno (il puntatore 'i' è una variabile che incremento ogni volta e che azzero ogni volta che incontro il punto e virgola).
Il problema è che quando compilo ed eseguo il programma, crasha.
Conoscete un altro modo per risolvere il mio problema?
Metto qui il codice che feci un paio di giorni (scusate, può darsi che sia un po' diverso dalle indicazioni che ho detto precedentemente):
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
file "prova.txt":
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Ultima modifica: