Salut!
J'implémente une classe fichier mais j'ai des problèmes pour afficher un fichier bufferisé:
Voilà le main:
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 class fichier{ public: string path;//adresse absolue du fichier fstream file; char *buffer; int sizeofbuffer; fichier(string s):path(s),file(NULL){}//constructeur void open(){ file.open(path.c_str()); } void bufferize(int n){ buffer=new char; file>>buffer; sizeofbuffer=n; } void printbuffer(){ for(int i=0;i<sizeofbuffer;i++){ cout<<buffer[i]; } } };
Ca compile,le test "f.file.is_open()" me renvoie 1 indiquant que le fichier est correctement ouvert,mais l'appel à la méthode "printbuffer()" m'affiche des signes qui n'ont rien à voir avec le fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 int main(int argc, char *argv[]) { fichier f("C:/a.txt"); f.open(); cout<<f.file.is_open()<<endl; f.bufferize(100); f.printbuffer();
Le problème est sûrement à l'initialisation de "buffer";j'ai essayé avec un "buffer" constant:sans faire d'allocation dynamique mais le problème demeure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part char buffer[200];
Merci de votre aide.
Partager