Archiv verlassen und diese Seite im Standarddesign anzeigen : streams
Servus.
Ich hab einen C++ stream mit dem ich eine datei öffne.
Wenn ich nun zB eine mp3 öffne kann ich aber die Zeichen nicht einlesen.
Ich hab den stream so geöffnet
file.open(url,ios_base::binary);
while((buffer=file.get())!=EOF)
{...}
Aber irgendwie liest er kein Zeichen
Woran liegt das?
Ist dein stream ein ifstream?Wenn nicht,dann ändern.
Teste ob File geöffnet werden konnte
if(file.fail())
cout << "Upps" << endl;
Das ist ein ifstream.
Den Test ob die Datei geöffne wird hab ich drin.
Der Liest 4 zeichen ein und bricht ab.
Die mp3 is aber 4.5 mb groß und da sollten ein paar mehr zeichen drin sein.
Kann es vielleicht sein dass der irgendwelche zahlen als EOF nimmt?
In ner mp3 steht ja kein normaler text.
Ja,dann teste auf file.fail() und nicht auf EOF ab.
while(!file.fail())
buf = file.get();
Performanter wäre es auch immer Blockweise einzulesen,und nicht zeichenweise.
Das funktioniert!
Vielen Dank.
Aber was prüft der da?
Ob das letzte file.get() funktioniert hat?
Oder ob überhaupt noch ein zeichen dasteht?
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.