Bonjour,

je rencontre un problème étrange (mais probablement une erreur bete dans 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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
int readIndexfile(char* IndexesPath){ 
	vector <string> filename;
 
	WIN32_FIND_DATA File;
	HANDLE hSearch;
 
	//d'abord je recupere les noms des fichiers qui m'interessent dans le path donne en parametre
	string searchString = IndexesPath + string("myfile*.txt");
	hSearch = FindFirstFile(searchString.c_str(), &File);
	do { 
		filename.push_back(File.cFileName);
	} while (FindNextFile(hSearch, &File));
	FindClose(hSearch);
 
 
	string line;
	ifstream f;
	// puis je lis les fichiers ligne par ligne
	for (int i = 0 ; i < filename.size() ; i++){
		string completeFileName = IndexesPath + filename[i];
// a ce niveau j'ai bien le bon chemin vers le fichier que je veux ouvrir
		f.open(completeFileName.c_str());
		getline(f, line);
 
		while (getline(f, line)){
		}
		f.close();
	}
	return 0;
}
 
 
 
int main() { 
	char * IndexesPath = "C:/MyPath/";
 
	readIndexfile(IndexesPath);
	return 0;
}

Ce code compile, mais lorsque je l'execute, il se contente d'ouvrir (et donc de lire) uniquement le premier fichier de la boucle. Pourtant f est bien fermé.

qqu aurait une idée du pourquoi du comment?

Je suis sur "Microsoft Visual C++ 6.0" sous windows 2000 pro.


Merci pour tte suggestion!