Bonjour,
Je me fais insulter par le compilateur parce que je fais quelque chose de travers mais je ne comprends pas pourquoi.
Voici le code
File.h
File.cpp
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 #ifndef DEF_FILE #define DEF_FILE #include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> class File { public: File( const char *path ); FILE *open( const char *path, char *mode); unsigned int getFileLength(const char *path); private: FILE *file; char *path; }; #endif
Il braille ici ...
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 #include "File.h" using namespace std; File::File(const char *_path) { strcpy( path, _path); } FILE *File::open(const char *path, char *mode) { FILE *ptr = fopen( path, mode ) ; if ( ptr != NULL ) { return ptr; } } unsigned int File::getFileLength(const char *path) { char character; unsigned int counter; file.open(path, "r"); while ( fscanf(file, "%c", &character) != EOF ) { counter++; } fclose(file); return counter; }
... m'insultant de ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part file.open(path, "r");
Pourtant la méthode open est bien définie pour l'attribut file dans la classe File. Quelque chose m'échappe
Code : Sélectionner tout - Visualiser dans une fenêtre à part request for member 'open' in '((File*)this)->File::file', which is of non-class type 'FILE*'|
Merci d'avance.
Partager