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 34 35
| /* je ne sais absolument pas quel genre de données constitue ton fichier.
* par facilité, on va considérer que ce sont des chaines de caractères, et que chaque
* chaine de caractère correspond à une ligne dans le fichier
*
* La lecture renverra donc un tableau de chaines de caractères
*/
std::vector<std::string> readFile(std::string const & filename){
/* ouverture du fichier
*/
std::ifstream ifs(filename);
/* si cela n'a pas fonctionné */
if(! ifs){
/* impossible d'aller plus loin */
std::string error("unable to open ");
error.append(filename);
throw std::runtime_error(error);
}
/* si on arrive ici, le fichier a pu être ouvert, on peut donc en extraire
* le contenu.
*
* Nous avons besoin d'un tableau qui contiendra toutes les chaines de caractères
* et d'une chaine de caractères "temporaire" pour l'extraction
*/
std::vector<std::string> tab;
std::string temp;
/* tant qu'il est possible d'extraire une ligne dans le fichier */
while(std::getline(ifs, temp){
/* on ajoute la ligne dans le tableau */
tab.push_back(temp);
}
/* arrivé ici, tab contient toutes les lignes du fichier, nous pouvons le renvoyer
* à la fonction appelante
*/
return tab;
} // fichier sera automatiquement fermé en passant ici |
Partager