Ich muss eine JPG-Datei zu einer Zeichenfolge lesen. Ich möchte diese Datei auf unseren Server hochladen, ich finde nur heraus, dass die API eine Zeichenfolge als Daten für dieses Bild benötigt. Ich folgte den Vorschlägen in einer früheren Frage, die ich Bilder auf einen Server hochladen möchte C ++ .
%Vor%Warum hört es bei 60 auf? Es ist ein komisches Zeichen bei 60, und was soll ich tun, um das JPG zu einer Zeichenkette zu lesen?
AKTUALISIEREN
Fast schon da, aber nachdem ich die vorgeschlagene Methode benutzt habe, wenn ich die Zeichenfolge in die Ausgabedatei umschreibe, verzerrt sie. Finde heraus, dass ich auch angeben soll, dass der Ofstream im Binärmodus von ofstream::binary
ist. Fertig!
Übrigens, was ist der Unterschied zwischen ifstream::binary
& amp; ios::binary
, gibt es eine Abkürzung für ofstream::binary
?
Öffne die Datei im Binärmodus, sonst wird sie merkwürdiges Verhalten haben und bestimmte Nicht-Textzeichen auf unangemessene Weise behandeln, zumindest unter Windows.
%Vor%Anstelle einer while-Schleife können Sie auch einfach die gesamte Datei auf einmal lesen:
%Vor%Sie sollten die Datei nicht in einer Zeichenfolge lesen, da es zulässig ist, dass ein JPG Werte enthält, die 0 sind. In einer Zeichenfolge hat der Wert 0 jedoch eine spezielle Bedeutung (es ist das Ende der Zeichenfolgenanzeige aka \ 0). . Sie sollten stattdessen die Datei in einen Vektor lesen. Sie können dies leicht so machen:
%Vor%Öffnen Sie die Datei im Binärmodus:
%Vor%Vermutlich haben Sie versucht, die Datei unter Windows zu lesen, und das 61 st -Zeichen war wahrscheinlich 0x26 - ein Control-Z, das (unter Windows) als das Markieren des Ende der Datei.
Was das Lesen am besten angeht, haben Sie die Wahl zwischen Einfachheit und Geschwindigkeit, wie in einer früheren Antwort gezeigt .
Tags und Links c++ file-io file-upload