ifstream & ofstream
-
moinsen

ich habe da ein kleines problem.
ich will daten (binär) einlesen und auch wieder schreiben.
ich habes mit#include <string> #include <fstream> #include <iostream> using namespace std; char* read(char *file) { char* temp = 0; ifstream in(file,ios::binary); if(in) { while(!in.eof()) in>>temp; } else { cout<<"file not found"<<endl; exit(-1); } in.close(); return temp; } void write(char* file, char* data) { ofstream out(file,ios::binary); if(out) { out<<data; } } int main() { char* tmp; tmp = read("../file.bin"); write("../temp.bin",tmp); return 0; }versucht, jedoch ohne erfolg
das programm stürzt abkann mir jemand bitte helfen?
viele dank
tüddel
-
tüddel schrieb:
char* temp = 0; ifstream in(file,ios::binary); if(in) { while(!in.eof()) in>>temp; }Denk mal ganz scharf darüber nach, wohin genau die Daten hier gelesen werden.
-
ohhhhhh ***
nach "in" ?
-
tüddel schrieb:
nach "in" ?
Nein, nach temp. Bloss temp ist 0, zeigt also auf keinen Speicherbereich => Crash.
-
ok, jetzt habe ich char* in string umgewandelt. (quick and dirty)
jetzt wird mir jedoch nur die letzten beiden zeichen ausgegeben ( in die neue datei geschrieben)
-
http://c-plusplus.net/forum/viewtopic-var-t-is-39469.html
FAQ...mit in >> überschreibst du jeweils was du vorher eingelesen hast.
Du brauchst also eigentlich 2 Variablen, 1 zum einlesen und eine
zum abspeichern.Devil