Salut!
Pour un logiciel que je suis en train de concevoir, j'aimerais disposer d'une fonction qui lirait ou écrirait dans mes fichiers de sauvegarde enregistrés au format .txt
Je crois que cette fonction ne marche pas bien. Le programme qui l'utilise a tendance à se crasher au moment de l'utiliser environ 130 fois.
Je maîtrise encore assez mal la lecture/écriture de fichiers texte... =)
Voici le code source actuel, et j'aimerais lire vos suggestions si vous en avez.
(EDIT: Nouvelle version un peu plus bas)
Sauvegarde.h:
Sauvegarde.cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #ifndef SAUVEGARDE_H_INCLUDED #define SAUVEGARDE_H_INCLUDED #include <string.h> using namespace std; string Sauvegarde(int a, int b, string c); #endif // SAUVEGARDE_H_INCLUDED
Si c'est nécessaire, vous pouvez poser toutes les questions! =D
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 #include <iostream> #include <fstream> #include <string.h> #include "Sauvegarde.h" using namespace std; string Sauvegarde(int a, int b, string c) { // a est le numéro du fichier utilisé // b est la ligne de sauvegarde utilisée // c est le contenu à écrire ou à retourner // Déclaration des variables int x; // Compteur de lignes pour la lecture des fichiers x=0; // Initialisation char* y; // Nom du fichier à lire ou à écrire switch(a) // Ceci permet d'orienter la fonction vers un des fichiers qui contient des données intéressantes, en-fonction des arguments donnés. { case 1: y="Donnees/Fichier_1.txt"; break; // Fichier 1 case 2: y="Donnees/Fichier_2.txt"; break; // Fichier 2 case 3: y="Donnees/Fichier_3.txt"; break; // Fichier 3 case 4: y="Donnees/Fichier_4.txt"; break; // Fichier 4 case 101: y="Donnees/Pacman_1.txt"; break; // Pacman 1 case 102: y="Donnees/Pacman_2.txt"; break; // Pacman 2 case 103: y="Donnees/Pacman_3.txt"; break; // Pacman 3 case 104: y="Donnees/Pacman_4.txt"; break; // Pacman 4 case 105: y="Donnees/Pacman_5.txt"; break; // Pacman 5 case 106: y="Donnees/Pacman_6.txt"; break; // Pacman 6 case 107: y="Donnees/Pacman_7.txt"; break; // Pacman 7 case 108: y="Donnees/Pacman_8.txt"; break; // Pacman 8 case 109: y="Donnees/Pacman_9.txt"; break; // Pacman 9 case 110: y="Donnees/Pacman_10.txt"; break; // Pacman 10 case 111: y="Donnees/Pacman_11.txt"; break; // Pacman 11 case 112: y="Donnees/Pacman_12.txt"; break; // Pacman 12 case 113: y="Donnees/Pacman_13.txt"; break; // Pacman 13 case 114: y="Donnees/Pacman_14.txt"; break; // Pacman 14 case 115: y="Donnees/Pacman_15.txt"; break; // Pacman 15 case 116: y="Donnees/Pacman_16.txt"; break; // Pacman 16 case 201: y="Donnees/Chargement_1.txt"; break; // Chargement 1 } if (c == "") // Lecture seule dans la mémoire { ifstream fichier(y); // Ouvrir le fichier en lecture while (x <= b) { getline(fichier, c); x++; } fichier.close(); } else // Ecriture dans la mémoire { ofstream fichier(y); // Ouvrir le fichier en écriture fichier.close(); } return c; }
Partager