file



  • bytesRead += (unsigned  int)fread(&bChunkLength, 1, 4, m_fp);
    

    funktioniert nicht mehr bei fstream.

    bytesRead += (unsigned long) file_.read((char*) &length, 4);
    

    error C2440: 'Typumwandlung': 'std::basic_istream<_Elem,_Traits>' kann nicht in 'unsigned long' konvertiert werden

    Welche Alternativen gibt es?



  • iostream::read() gibt nicht die Anzahl der gelesenen Zeichen zurück, sondern den stream-Status. Aber du kannst nach dem read() per gcount() abfragen, wieviel du eingelesen hast:

    file_.read((char*)&length,sizeof(length);
    bytesRead+=file_.gcount();
    

Anmelden zum Antworten