getline pour lire chaque ligne, boost::tokenizer pour extraire les morceaux de ta ligne. A répéter tant que getline renvoit ce qui faut.
J'ai donner un exemple complet 2-3 fois pr le même problème, use the Search button Luke !
Code :
- #include <vector>
- #include <string>
- #include <fstream>
- #include <boost/tokenizer.hpp>
- using namespace std;
- using namespace boost;
- int main()
- {
- vector<string> colonne;
- string ligne;
- ofstream fichier("truc.txt" );
- // Tant que j'ai des lignes à lire
- while (getline (fichier, ligne))
- {
- typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
- boost::char_separator<char> sep("\t" );
- // tokenisation de la ligne courante
- tokenizer tokens(ligne, sep);
- // Recup des tokens via un token_iterator
- tokenizer::iterator tok_iter = tokens.begin();
- while(tok_iter != tokens.end())
- {
- // ici *tok_iter conteint ta colonne courante, tu en fais ce que tu veux
- // colonne suivante
- tok_iter++;
- }
- }
- return 0;
- }
|
Message édité par Joel F le 01-08-2008 à 09:43:51