std::string in Datei?
-
Hi,
gibt es möglichkeiten einen std::string in eine Datei zu schreiben und wieder auszulesen!!!
Danke...
-
Benutz mal sie Suchfunktion. Das kam schon ~100 mal.
-
Ja... Schreibe einbfach das string.c_str() rein, und falls Du es benötigst noch die Länge...
-
-
kingruedi schrieb:
@NobbZ
wtfBTW: In dem FAQ-Beitrag koennte man Code-Tags einfuegen, wuerde das lesen des
Codes vereinfachen.mfg
v R
-
virtuell Realisticer schrieb:
BTW: In dem FAQ-Beitrag koennte man Code-Tags einfuegen, wuerde das lesen des
Codes vereinfachen.afaik schreibt gerard an einem script, das den [ cpp] [/code] fehler beheben (bzw [/code] zu [/cpp] machen) soll (der fehler tritt nämlich nicht nur hier auf, sondern muss öfter korrigiert werden)
-
Hi,
erstmal danke für die Antworten:
Also, so n00big bin ich nun nicht!
Ich habe den String per c_str() und streams in die Datei geschrieben und noch dazu die Länge per strlen(String.c_str()+1). Wenn ich die nun auslese und z.B. in einem char[128] speichere, funktioniert alles sehr gut. Wenn ich das aber in einem string speichere, kommt beim lesen kein Fehler, aber beim Benutzen des Strings stürzt das Pogramm ab? Leider!!!
Der String wurde vor dem Nutzen per .resize() an die Länge des zulesenden Strings angepasst!
Was ist falsch???
Danke...
-
#include <fstream> #include <string> #include <iostream> using namespace std; int main(int argc,char * argv[]) { cout<<"Gib was ein\n"; string temp; getline(cin,temp); fstream file("t:\\test.txt",ios::out); file<<temp; temp=""; file.close(); file.open("t:\\test.txt",ios::in); getline(file,temp); cout<<"Sie hatten eingegeben :"<<temp; return 0; }
-
Hi,
danke für die Antwort.
Und binär, also alles ohne getline, bzw per read mit Temp, DataSize???
Danke,
N00B0
-
Würde ich folgendes machen (erst mal nur Worte um zu sehen ob es in die richtige richtung geht)
Gesammte Datei in einen String packen
- Dateigrösse ermitteln
- String auf diese groesse gringen
- mit copy() die Datei in den String kopieren
(alternative mit read ?! Kenn ich nur ausm Buch sry)
Wenn Du nun diesen String in die Datei haben willst
String mit copy (oder write) in die Datei schreiben- .data() liefert Dir die Binären Daten
- .length() liefert Dir die anzahl der Bytes die Du schreiben willst
Hm, Du kannst aber auch einen Vector nehmen und den mit read verwenden.
(Den kannst Du als Zieladresse angeben nachdem Du ihn auf die richtige größe gebrachat hast. Für das da oben wären istreambuf_iteratoren fällig....)Erkläre mal kurz was Du vor hast. Dann braucht man für den Spatz vllt. keine Kanone...