Salut!

J'implémente une classe fichier mais j'ai des problèmes pour afficher un fichier bufferisé:
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];
                                         }
                                 }
 
                          };
Voilà le main:
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();
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.

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.

Merci de votre aide.