Bonjour,

je souhaite me faire une fonction "read" qui lit un fichier texte et qui stocke chaque ligne dans un std::vector<std::string>.

Voici mon code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
bool read(const string & filename, vector<string> & data)
{
	data.clear();
	string line;
 
	std::ifstream fid(filename.c_str());
	if(!fid)
		return false;
 
	while(std::getline(fid, line))
		data.push_back(line);
 
	fid.close();
 
	return true;
}
Maintenant je teste la fonction. Le fichier texte contient les 7 lignes suivantes

toto
tata
tutu
titi
toto
tutu
tete
et mon code source est

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
string rep = "Fichiers/";
string filename = rep + "testPourFonctionsReadWrite_1.txt";
vector<string> data;
 
read(filename, data);
cout << "data.size() = " << data.size() << endl;
et là j'ai data.size() == 1 et data[0] = "tototatatututititototututete"

Quelqu'un aurait-il une idée pour m'expliquer la raison pour laquelle data.size() != 7 ?

Merci d'avance