Anfänger, IOS::Binary
-
Hallo,
Ich habe das Problem, dass mein "Programm" nur ohne ios::binary funktioniert.
sobald ich ios::binary verwende wird eine 'exception' geschmissen.int length; char * buffer; fstream f; f.open(argv[1], ios::binary); if(!f) cout << "problem with f" << endl; else { f.seekg(0, ios::end); length = f.tellg(); f.seekg(0, ios::beg); buffer = new char[length]; f.read(buffer, length); f.close(); cout.write(buffer, length); }kann mir jemand erklren woran das liegt?
edit://
ich versuche eine .txt zu laden
-
f.open(argv[1], ios::in | ios::binary);
-
Nä, fstream ergänzt von alleine
ios_base::in | ios_base::out.
-
Ad aCTa schrieb:
Nä, fstream ergänzt von alleine
ios_base::in | ios_base::out.Das stimmt nicht! Er gab ios::binary an und das wurde nicht ergänzt.
-
ich hatte das gefühl, er läd irgendwas aus dem ram oder etc.
woher kommen die daten dann?
-
Wenn du binary angibts, dann werden Steuerzeichen für Texte ignoriert, dass heist es kann schon sein, dass du merkwürdige Zeichen ausgegeben bekommst. Ansonsten kann man nur vermuten das argv[1] kein gescheiter Pfad ist, welche aber ohne meckern gefressen wird. Probier es mal mit konstantem char* z.B.
f.open("C:\\Test.txt", ios_base::out |ios_base::in | ios_base::binary);Das ios_base::out ist eingentlich überflüssig, schadet aber hier nicht.