Bonjour à tous,
Voilà je commence le C++ et j'ai essayé de faire un petit programme qui écrit du texte dans un fichier. Ce programme est le suivant :
Je rencontre un problème (ou une erreur de ma part) car pour que la fonction ajoutTexte() marche je suis obligé de rajouter en début de cette fonction l'instruction suivante :
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 #include <iostream> #include <fstream> #include <stdio.h> #include <windows.h> using namespace std; class TestFichier { string nomFichier; ofstream fichier; public : TestFichier(); void ajoutTexte(string texte); void finFichier(); }; TestFichier::TestFichier(){ nomFichier = "fichier.txt"; ofstream fichier(nomFichier.c_str(), ios::trunc); if (!fichier){ cerr << "Erreur de création du fichier" << endl; exit(1); } SYSTEMTIME dateSysteme; GetSystemTime(&dateSysteme); fichier << "--------------------------------------------" << endl; fichier << "Fichier enregistré le "; fichier << dateSysteme.wDay << "/" << dateSysteme.wMonth << "/" << dateSysteme.wYear << " à " << dateSysteme.wHour+1 << ":" << dateSysteme.wMinute << ":" << dateSysteme.wSecond << endl; fichier << "--------------------------------------------" << endl; } void TestFichier::ajoutTexte(string texte){ fichier << "Ajout de texte" << endl; fichier << texte << endl; } void TestFichier::finFichier(){ fichier.close(); } int main(){ TestFichier *test = new TestFichier(); test->ajoutTexte("Test"); test->finFichier(); return 0; }Ou il faut que je mette à la place de
Code : Sélectionner tout - Visualiser dans une fenêtre à part ofstream fichier(nomFichier.c_str(), ios::app);dans le constructeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ofstream fichier(nomFichier.c_str(), ios::trunc);Je ne sais pas si c'est normale ou que j'ai fait une erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ofstream fichier(nomFichier.c_str(), ios::in|ios::out);
Sinon, j'ai rencontré un autre problème pour créér une instance de cette classe. J'avais essayé de le faire de cette manière :
Mais ça ne marche pas j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 int main(){ TestFichier test(); test.ajoutTexte("Test"); test.finFichier(); return 0; }
testFichier.cc: In function `int main()':
testFichier.cc:53: error: request for member `ajoutTexte' in `test', which is of non-class type `TestFichier ()()'
testFichier.cc:55: error: request for member `finFichier' in `test', which is of non-class type `TestFichier ()()' .
Si quelqu'un pouvait me donner quelques précisions sur pourquoi je suis obligé de passer par un pointeur : TestFichier *test = new TestFichier();, pour appeler les fonctions de la classe TestFichier. Ca serait sympa.
Merci d'avance pour vos réponses
Partager