std::ifstream - Verwirrung



  • Hallo,
    in meinem Code lese ich aus einer binären Datei hintereinander in einem char-buffer[2] und darauffolgend in einen char-buffer[4] ein. Dies klappt auch eigentlich super, nur gibt er mir die falsche Zeigerposition wieder.

    Hier einfach mal der Code (vereinfacht):

    m_Stream.tellg(); // == 0
    
    m_Stream.read( m_Buffer2, sizeof( short ) ); //char m_Buffer2[2]
    
    m_Stream.tellg(); // == -1
    
    m_Stream.read( m_Buffer4, sizeof( int ) ); //char m_Buffer4[4]
    m_Stream.tellg(); // == 3
    

    Würde mir das vielleicht jemand erklären... ? Wie gesagt, in die beiden Buffer wird richtig eingelesen.

    Besten dank im Voraus!



  • Mir fällt nichts auf, außer: ios::binary vergessen? + Warum sizeof(short/int)? Das ist doch nur unsicher..



  • cooky451 schrieb:

    Mir fällt nichts auf, außer: ios::binary vergessen? + Warum sizeof(short/int)? Das ist doch nur unsicher..

    Ich will ein Kind von dir 🙂

    😃 Danke!


Anmelden zum Antworten