1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| void foo(std::string const & filename)
{
std::ifstream ifs(filename.c_str());
std::string read;
/* lisons les lignes du fichier une à une, tant qu'il y en a */
while(std::getline(ifs,read))
{
/* passons la chaine lue dans un flux de conversion */
std::stringstream ss;
ss<<read;
/* et réutilisons getline, en précisant de s'arreter à chaque ;
* Tant qu'à faire, même si ce n'est pas pour les utiliser
* autant récupérer les autres informations (entre autres pour
* nous permettre de vérifier le format du fichier) :D*/
std::string nom;
std::string prenom;
std::string address;
std::string type;
std::string lieu;
if(!std::getline(ss,nom,';')
throw BadFormat();
if(!std::getline(ss,prenom,';')
throw BadFormat();
if(!std::getline(ss,address,';')
throw BadFormat();
if(!std::getline(ss,type,';')
throw BadFormat();
if(!std::getline(ss,lieu)
throw BadFormat();
std::cout<<address<<std::endl;
}
} |
Partager