Wenn ich etwas tun, wie folgt aus:Warum kann ich die binären Daten von fstream nicht mit Operator >> lesen?
ifstream file;
file.open("somefile", ios::binary);
unsigned int data;
file >> data;
Mein Strom wird immer gesetzt den failbit
und die data
wird nicht initialisierten bleiben. Wenn ich jedoch stattdessen char
oder unsigned char
lese, ist der Stream in Ordnung. perror()
sagt mir "Ergebnis zu groß".
Das einzige, was ich bei Google sah, war ein Vorschlag, dass operator>>
nicht für Binärdaten verwendet werden sollte (lieber read()
), aber ich finde den Operator sauberer und einfacher zu bedienen - und es ist nicht erforderlich alles werfen.
Kann jemand dieses Problem erklären?
Sie haben den Grund, warum es so in Ihrer Antwort ist: "abhängig davon, ob int 32-Bit oder 64-Bit ist". Derzeit ist Code mit '' tragbar, Ihr Vorschlag ist nicht. –
Caleth