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

fstream - wczytanie binarnie struktury

Ostatnio zmodyfikowano 2015-09-15 14:04
Autor Wiadomość
txter
Temat założony przez niniejszego użytkownika
fstream - wczytanie binarnie struktury
» 2015-09-14 22:46:11
Plik wczytałem tak:
C/C++
ifstream fin( filename, ios::binary );

Gdy chciałem wczytać np. liczbę typu integer robiłem to tak:
C/C++
int dana;
fin.read( reinterpret_cast < char *>( & dana ), sizeof( int ) );

Ale jak wczytać dane do całej struktury np.
C/C++
struct JakasStruktura
{
    int a;
    char string[ 1024 ];
};

Problem z tym, że nie da się rzutować do char*.
Wiem, że funkcją fread() tak się da, tyle że musiałbym mieć zmienną typu FILE* - kodu sporo, więc jest mi nie na rękę aby edytować to wszystko.

P-137519
mateczek
Dlaczego nie da się rzutować do *char??
» 2015-09-15 07:59:09
Co jest nie tak w tym kodzie rzutowania ??
C/C++
int main() {
    JakasStruktura a;
    char * t =( char * ) & a;
   
}
P-137521
Monika90
» 2015-09-15 09:55:34
Co jest nie tak w tym kodzie rzutowania ??
Ano to, że używa rzutowania w stylu C.
P-137522
mateczek
» 2015-09-15 10:28:36
Po prostu zaciekawiło mnie dlaczego autor napisał iż nie da rzutować ??
Co jest przyczyną takiego stwierdzenia o niemożności rzutowania??
akurat w przypadku gdy chce potraktować obiekt jako strumień bajtów. To chyba proste rzutowanie, (ustawienie wskaźnika na pierwszy bajt obiektu), jest właśnie spełnieniem założenia.
P-137528
txter
Temat założony przez niniejszego użytkownika
» 2015-09-15 14:04:30
Czyli po prostu użyć prostego rzutowania bez kombinowania? Ok.
P-137532
« 1 »
  Strona 1 z 1