Bonjour,
je suis en train d'apprendre à utiliser les strings et les flux en c++ et tout ne fonctionne pas comme je voudrais. Voici mon code
En gros, je voudrais tester si le fichier "fichier.dat" existe déjà et si c'est le cas permettre à l'utilisateur de l'écraser ou de proposer un nouveau nom. Qu'est ce que je fais mal ?
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
41
42
43 #include <iostream> #include <fstream> #include <string> using namespace std; char text[100]; bool is_readable(const string &file) //indique si un fichier est lisible (et donc si il existe) { ifstream fichier(file.c_str()); return !fichier.fail(); } void main() { string answer; string output_file("fichier.dat" ); ofstream output(output_file.c_str()); if(is_readable(output_file.c_str())) { cout << output_file << " exists. Do you want to erase this file (type \"erase\" ) or to create a new one (type \"create\" )?" << endl; cin >> answer; while (strcmp(answer.c_str(),"erase" )==1 || strcmp(answer.c_str(),"create" )==1) //strcmp renvoie 1 quand les chaines sont différentes { cout << "Choice is incorrect, type \"erase\" or \"create\"." << endl; cout << answer << endl; cin >> answer; } if(strcmp(answer.c_str(),"erase" )==0) { ofstream output(output_file.c_str()); } if(strcmp(answer.c_str(),"create" )==0) { cout << "Type the new file name" << endl; cin >> output_file; output.close(); ofstream output(output_file.c_str()); } } }//fin de main
Partager