Salve a tutti, esiste un analogo della funzione StringTokenizer di Java in C++?
Devo leggere un file di testo con righe di lunghezza variabile costituie da una stringa lunga 80 e poi un numero separati da uno spazio.
Grazie
Salve a tutti, esiste un analogo della funzione StringTokenizer di Java in C++?
Devo leggere un file di testo con righe di lunghezza variabile costituie da una stringa lunga 80 e poi un numero separati da uno spazio.
Grazie
La prossima volta dai anche un titolo alla discussione...
PS: StringTokenizer è una classe, non una funzione, in Java.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
OOps, chiedo scusa, ma ho scritto il post fra una telefonata e l'altra! (Sarei sul lavoro)
Banalmente..........scanf..............
Grazie, però ho visto che c'è la funzione strtok()...
Sì certo, ma con quella ti devi costruire tu il tokenizer, non c'è prestabilito.
Può andare ?codice:class CppStringTokenizer { private: char *datastring; char *token; char *delimiters; bool firstToken; bool hasToken; public: CppStringTokenizer(const char *string, const char* delimiters); ~CppStringTokenizer(); bool hasMoreToken() { return hasToken; } char* nextToken(); }; CppStringTokenizer::CppStringTokenizer(const char *string, const char *delimiters) { this->datastring = new char[ strlen( string ) + 1 ]; this->delimiters = mew char[ strlen( delimiters ) + 1 ]; firstToken = true; hasToken = true; } char* CppStringTokenizer::nextToken() { if(firstToken) { this->token = strtok(this->datastring, this->delimiter); firstToken = false; } else { this->token = strtok(NULL, this->delimiters); } if(this->token == NULL ) { hasToken = false; } return this->token; } CppStringTokenizer::~CppStringTokenizer() { delete[] this->datastring; delete[] this->delimiters; }
poi c'è anche fstream e istream.
Grazie, direi .... decisamente esausitivo!