Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

fstream w klasach

Ostatnio zmodyfikowano 2011-02-27 19:38
Autor Wiadomość
inny1997
Temat założony przez niniejszego użytkownika
fstream w klasach
» 2011-02-27 18:04:21
W jaki sposób odczytywać i zapisywać dane z pliku(fstream)w klasie.
W klasie nie można tworzyć obiektów tylko można tworzyć wskaźniki.
tworze taką konstrukcje
C/C++
#include <allegro.h>
#include <iostream>
#include <math.h>
#include <vector>
#include <fstream>

enum kierunek
{ gora, dol, lewo, prawo };

class trasa
{
    std::vector < kierunek > ruchy;
    std::fstream * plik;
   
    trasa( const char * nazwa_pliku )
    {
        plik = new std::fstream;
        plik->open( nazwa_pliku, std::ios::binary | std::ios::in );
        kierunek tym;
        for( int i = 0; !plik.eof(); i++ )
        {
            plik->read(( char * ) & tym, sizeof( kierunek ) );
            ruchy.push_back( tym );
        }
    }
   
    ~trasa()
    {
        plik->close();
    }
niestety nie działa;
P-28663
pekfos
» 2011-02-27 18:26:24
plik.eof()
i ni dodajesz wyników do kontenera w pętli
P-28665
inny1997
Temat założony przez niniejszego użytkownika
» 2011-02-27 18:36:27
głównie chodzi mi że program nie chce się skompilować, bo konstukcje
plik->open();
plik.read();
plik.close()

nie chcą działać
oto co mi komplikator mówi:

main.cpp: In constructor `trasa::trasa(const char*)':
main.cpp:17: error: invalid use of undefined type `struct std::fstream'

D:/programowanie/Nowyfolder/Dev-Cpp/include/c++/3.4.2/iosfwd:96: error: declaration of `struct std::fstream'
main.cpp:18: error: invalid use of undefined type `struct std::basic_fstream<char, std::char_traits<char> >'
D:/programowanie/Nowyfolder/Dev-Cpp/include/c++/3.4.2/iosfwd:96: error: declaration of `struct std::basic_fstream<char, std::char_traits<char> >'
main.cpp:18: error: `iso' has not been declared

main.cpp:18: error: `binary' undeclared (first use this function)
main.cpp:18: error: (Each undeclared identifier is reported only once for each function it appears in.)
main.cpp:18: error: `iso' has not been declared
main.cpp:18: error: `in' undeclared (first use this function)
main.cpp:20: error: `eof' is not a type
main.cpp:20: error: request for member of non-aggregate type before '(' token
main.cpp:22: error: invalid use of undefined type `struct std::basic_fstream<char, std::char_traits<char> >'
D:/programowanie/Nowyfolder/Dev-Cpp/include/c++/3.4.2/iosfwd:96: error: declaration of `struct std::basic_fstream<char, std::char_traits<char> >'
main.cpp: In destructor `trasa::~trasa()':
main.cpp:29: error: invalid use of undefined type `struct std::basic_fstream<char, std::char_traits<char> >'
D:/programowanie/Nowyfolder/Dev-Cpp/include/c++/3.4.2/iosfwd:96: error: declaration of `struct std::basic_fstream<char, std::char_traits<char> >'

make.exe: *** [main.o] Error 1

Wykonanie zakończone
P-28666
pekfos
» 2011-02-27 18:57:03
jak nie masz std:: to oczywiście że nic nie działa
P-28667
inny1997
Temat założony przez niniejszego użytkownika
» 2011-02-27 19:05:05
to gdzie mam dopisać std::
dopisłem już std:: (kod powyżej został zmieniony)
P-28668
szyx_yankez
» 2011-02-27 19:18:15
#include <fstream>
 i
std::ios::binary | std::ios::in
?
P-28670
inny1997
Temat założony przez niniejszego użytkownika
» 2011-02-27 19:32:36
A teraz rozumiem.
Poprawiłem już, ale konstrukcja
!plik.eof()
nie kompiluje się.
komplikator to mi mówi:
`eof' is not a type
request for member of non-aggregate type before '(' token
P-28671
pekfos
» 2011-02-27 19:38:31
jak używasz wskaźników to
!plik->eof()
P-28672
« 1 »
  Strona 1 z 1