Bonjour,
J'ai déclaré une classe destinée à lire un fichier ASCII avec <fstream> comme ceci:
Ensuite j'essaie de lire puis d'afficher comme ceci:
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 class Simple { string chaine; public: Simple ( string initial_chaine); ~Simple(); // methode lit une ligne void reads_a_line( fstream one_file ) { string une_ligne; getline ( one_file, une_ligne ); } // method affiche une ligne string printsimple( string mystring ){ string fin = " enfin"; return ( mystring + fin); } };
La compile génère ces messages:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // meme lecture mais avec data et method de la classe fstream myFile2; myFile2.open( "le_fichier_a_skis.txt", ios::in ); while ( ! myFile2.eof() ) { s.reads_a_line( myFile2 ); //cout << s.printsimple( s.chaine ) << endl; } myFile2.close();
Auxquels je ne comprends goutte, sinon que j'essaie d'accéder à quelquechose de "private", mais quoi? (la ligne 55 est la fin du source)C:\jbmorla\data\sources\cplusplus\VASILIU\fich_dyn>make a=simple
g++ -g -Wall -MD -c Simple.cpp -o Simple.o
Simple.cpp: In copy constructor `std::basic_ios<char, std::char_traits<char> >::
basic_ios(const std::basic_ios<char, std::char_traits<char> >&)':
C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++
/3.4.4/bits/ios_base.h:781: error: `std::ios_base::ios_base(const std::ios_base&
)' is private
Simple.cpp:55: error: within this context
Simple.cpp: In copy constructor `std::basic_filebuf<char, std::char_traits<char>
>::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)':
C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++
/3.4.4/streambuf:769: error: `std::basic_streambuf<_CharT, _Traits>::basic_strea
mbuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits
= std::char_traits<char>]' is private
Simple.cpp:55: error: within this context
Simple.cpp: In function `int main(int, char**)':
Simple.cpp:55: error: initializing argument 1 of `void Simple::reads_a_line(st
d::fstream)'
make: *** [Simple.o] Error 1
En fait je voudrais que la classe "Simple" lise depuis le fichier dans la string private "chaine", pour que ça ressemble à de l'Objet.
So Houston I have a problem!!!
Merci si vous avez une idée
Bonne journée.
Partager