Puoi usare un fstream e leggere le parole byte per byte, oppure farti le tue funzioni in asm.
candidati[i].cognome=getline(nomefile, cognome);
Sbagliato!
http://www.cplusplus.com/reference/i...tream/getline/
Leggi cosa ritorna la funzione
Puoi usare un fstream e leggere le parole byte per byte, oppure farti le tue funzioni in asm.
candidati[i].cognome=getline(nomefile, cognome);
Sbagliato!
http://www.cplusplus.com/reference/i...tream/getline/
Leggi cosa ritorna la funzione
Occhio, stai linkando la funzione sbagliata, tu hai linkato il metodo istream::getline, mentre qui si sta parlando della funzione libera getline.Originariamente inviato da VisRoboris
Puoi usare un fstream e leggere le parole byte per byte, oppure farti le tue funzioni in asm.
candidati[i].cognome=getline(nomefile, cognome);
Sbagliato!
http://www.cplusplus.com/reference/i...tream/getline/
Leggi cosa ritorna la funzione
Amaro C++, il gusto pieno dell'undefined behavior.
Non ho capito perchè è errato!
Se è errato, come devo risolvere?
Con i sogni possiamo conoscere il futuro...
Prima ti avevo detto questa cosa, che potrebbe risolvere il problema in quanto io definisco prima i tipi di dati da estrapolare del file per poi inserirli nella struttura.Originariamente inviato da gaten
In realtà potrei leggere anche una singola parola in questo modo:
Ma non sò se sia corretto o meglio , potrei trovare difficoltà nella lettura della data di nascita.codice:nomefile>>parola;
Con i sogni possiamo conoscere il futuro...
Intanto ho visto che getline restituisce:
Return value
*this
Con i sogni possiamo conoscere il futuro...
Mi sono un po' perso.
Quale sarebbe ora il problema?![]()
0) apri il file / stream [ti consiglio file, normalmente hai più funzioni di controllo degli errori, ma è questione di "gusti"]
1) scrivi il numero dei record / elementi dell'array
2) cicli per ogni record /elemento dell'array
scrivi in ASCII il singolo campo (non spezzare le date, che senso ha?)
3) chiudi il file / stream
---
Lato lettura
0) apri il file
1) leggi la prima riga => converti in intero (o quello che vuoi)=>numero record
2) allochi un array della dimensione precedente
3) fai un ciclo sul numero record
leggi nello stesso ordine i campi => li metti nell'array
4) chiudi il file
---
Poi se vuoi fare qualcosa di "fico", tipo una serializzazione con materializzazione "universale" (per modo di dire) ti puoi sbizzarrire con RTTI e quello che vuoi.
Ma nel tuo caso non mi complicherei la vita più di tanto