PDA

Visualizza la versione completa : [C++] Splittare testo letto da file


Visionario
26-02-2007, 20:02
Salve a tutti,

non sono esperto del C++, sto creando una applicazione che legge file di testo, formattati in modo tale che contengano per ogni riga un record ed uno spazio tra i vari campi, una cosa del tipo:

nome cognome et
Mario Rossi 25

Ora io riesco a leggere dalla riga tramite il metodo "getline();" una intera riga di testo, vorrei (come faccio con altri linguaggi) prendere ad esempio solo il cognome tramite uno Split, in Asp farei uno split(....)(1) e prenderei solo il cognome, in C++ esiste una funzione ceh f questo, ovvero crea un array di stringhe dividendo le parole quando trova uno spazio? :bh:

Saluti
:ciauz:

oregon
26-02-2007, 20:04
No ... la Split e' complessa ed e' fatta da piu' funzioni ... devi creartela tu ...

Visionario
26-02-2007, 20:08
Una cosa del tipo:



creo un array
creo una variabile

finquando no finisce la stringa {
finquanto non trovo uno spazio{
prendi carattere e copialo in una variabile
}
immagazzina la variabile come nuovo elemento degli array
}


Pu andare?

keratox
26-02-2007, 20:13
Prova!

Trova un metodo per rendere pi efficace la pratica prova&errore. Poniti domande.

Quali sono i limiti concettuali che mi impediscono di risolvere il problema?
Il problema complesso: divide et impera.
Quali sono i limiti specifici (sintattici, implementativi) che mi impediscono di risolvere il problema?
Non conosco costrutti adatti: reference, documentazione, internet.

Butta gi qualche riga. Funziona?
Se non funziona, ripeti il procedimento.

Paulin
26-02-2007, 21:54
Ora io riesco a leggere dalla riga tramite il metodo "getline();" una intera riga di testo, vorrei (come faccio con altri linguaggi) prendere ad esempio solo il cognome tramite uno Split, in Asp farei uno split(....)(1) e prenderei solo il cognome, in C++ esiste una funzione ceh f questo, ovvero crea un array di stringhe dividendo le parole quando trova uno spazio?

Mi pare che il tuo problema sia separare un "parola" contenuta in una stringa di caratteri. Il computer non sa che cosa sia per noi un "parola", ma noi sappiamo che si tratta di un gruppo di carattri delimitati da spazio bianco. Io ti consiglierei di utilizzare la funzione strtok ed utilizzare come delimitatore proprio il blankspace.

Loading