Binärdatei einlesen

Hallo zusammen, ich hab noch nicht allzuviel C++ erfahrung und soll aber im Studium ein Bild einlesen.
Jetzt versuch ich schon seit Stunden einfach ein paar bytes aus einer Datei zu lesen aber nix funktioniert.
Ich hab zu beginn

fstream f;
f.open(file, ios::binary);

angegeben und will jetzt mit

unsigned char c;
f \>\> c;

ein Byte lesen.
Aber das will nicht wirklich funktionieren.
zudem liefert mir

f.tellg()

immer -1.
Was ist mein Fehler?

Danke schonmal!

Hallo Jerry

Wie Du hier
http://www.cplusplus.com/reference/iostream/istream/…
siehst, gibt es keinen >> für „char“, aber du kannst ja „short“ oder „int“ versuchen.
Allerdings würde ich nicht wetten, dass der Operator>> für Binärdateien überhaupt verfügbar ist, eher für Text, siehe den Code unten.

Ich rate „ifstream“ zum lesen und „ofstream“ zum schreiben von Dateien:

ifstream f;
f.open(file, ios::binary);
if (! is\_open(f)) {cerr \>\> "";}
char c;
f.read(&c, 1);
f.close();

(ungetestet)

Hier ist noch ein passendes Beispiel:
http://www.cplusplus.com/reference/iostream/istream/…

Hoffe, das hilft.
mfG
Martin B

Bibliotheksfunktionen verwenden
Hallo Jerry,

sinnvollerweise liest Du mit den dafür vorgesehenen Bibliotheksfunktionen gleich eine größere Datenmenge in entsprechend reservierten Speicher ein und analysierst erst im Hauptspeicher. Natürlich unter Abtestung aller potenziellen Fehlermeldungen!

Je nach Aufgabenstellung kann dies sogar die komplette Datei sein.

Ciao, Allesquatsch