|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Oct 2002
Città: Vicino Fermo Mercatino:più di 100 trattative tutte OK
Messaggi: 4651
|
[C++] Lavorare con i file.
Ciao a tutti,
anzitutto grazie in anticipo a chi mi aiutera'. Stavo creando un programmino stupido per windows, giusto per "skillarmi" un po' col C++. Solo che sono arrivanto di fronte ad un problema: Come posso fare il parsing di un file di testo in C++? In C lo so fare senza problemi(fscanf->identificatori di tipo -> array di destinazione) , solo che volevo farlo con l'FSTREAM del C++. Come si fa? Ovvero dato un puntatore a file, so che nel file ci sono righe del tipo: carattere numeroint e stringa (es: A 1987 pippo) fineriga. Come faccio con l'fstream a leggeere i dati riga per riga ed a metterli in un array....? Se mi volete dare una mano ve ne sono grato! Ciao Wing |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Qualcosa del genere penso possa essere un inizio:
Codice:
#include <fstream> using namespace std; ... ifstream ifs("nomefile"); if (ifs.is_open()) {string line; while(getline(ifs,line)) {}...} |
![]() |
![]() |
![]() |
#3 | |
Bannato
Iscritto dal: Oct 2002
Città: Vicino Fermo Mercatino:più di 100 trattative tutte OK
Messaggi: 4651
|
Quote:
Pero' forse nn mi sono spiegato bene io. mea culpa ![]() Quello che intendevo io, era fare il "parsing" di una riga. La funzione getline la conoscevo, quello che nn riesco a fare e' come fare il parsing di una riga, memorizzando elemento x elemento. Come ho scritto sopra! Grazie cmq ![]() Ciao Wing |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Codice:
vector<string> fields; string temp = line; int separatorPos = -1; while((separatorPos = temp.find(separator)) != temp.npos) { fields.push_back(temp.substr(0,separatorPos)); temp = temp.substr(separatorPos); } |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:03.