Bonjour,
mon problème c'est que ifstream fonctionne très bien si on lui indique dirèctement le fichier à ouvrir, mais si on lui indique d'abord un fichier non existant, puis un fichier existant, il l'ouvre mais ne le lit pas.
Voilà le code:
Le problème c'est que si on tape dirèctement le nom du fichier en paramètre, tout se passe bien.
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 //On initialise: string file_name=""; //le nom du fichier à ouvrir ifstream file; //le fichier à ouvrir if(argv[1]) { file_name=argv[1]; //S'il existe un paramètre, on le donne en nom de fichier à ouvrir } while(1) { //On tente d'ouvrir le fichier et on vérifie si ça fonctionne file.open(file_name.c_str()); if(file.is_open()) { cout<<endl<<"File opened"<<endl<<endl; //On affiche un message qui confirme l'ouverture du fichier et on essaie de lire les lignes. string line; while(getline(file, line)) { cout<<line<<endl; } file.close(); break; //On ferme le fichier et on quitte la boucle while } //Si le fichier n'a pas pu s'ouvrir, on le ferme puis on demande à l'utilisatrice de retaper le nom du fichier, que l'on mettra dans file_name, puis on recommence la boucle. else { file.close(); cout<<"Fichier introuvable, veuillez entrer un autre nom de fichier: "; cin>>file_name; } }
Mais si on le rentre par après, le message "File opened" s'affichera, mais pas les lignes.
Merci d'avance à qui me répondra
Partager