2 Files -> 1 File
-
Hi Leute,
ihr könnt mir doch bestimmt sagen, wie ich zwei Dateien in Ansi C zu einer konkatenieren kann. Sprich ich hab in einer Datei
ABC stehen und in der 2. XYZ
Und in meiner Zieldatei soll dann
ABCXYZ stehen.
Habt ihr vielleicht ein Link zu einem Tutrial oder sonst eine Idee?
Gruß Sachse
-
Nacheinander öffnen und in die selbe Zieldatei rüberkopieren:
FILE* fin,fout; fin=fopen("Datei1.txt","r"); fout=fopen("Dateiaus.txt","w"); copy(fin,fout);// <- in den FAQs findest du sicher etwas dafür fclose(fin); fin=fopen("Datei2.txt","r"); copy(fin,fout); fclose(fin); fclose(fout);
-
cstoll, wohl eher nicht.
in ansi c gibt es kein copy() und selbst wenn, die modes fuer fopen() machen wenig sinn.
richtiger code:
#define LARGENUM 1024 FILE *fin1, *fin2, *fout; char buf[LARGENUM]; int numread; fin1 = fopen("fin1", "r"); fin2 = fopen("fin2", "r"); fout = fopen("fout", "w"); do { numread = fread(buf, 1, LARGENUM, fin1); fwrite(buf, 1, numread, fout); } while (!feof(fin1) && !ferror(fin1)); fclose(fin1); do { numread = fread(buf, 1, LARGENUM, fin2); fwrite(buf, 1, numread, fout); } while (!feof(fin2) && !ferror(fin2)); fclose(fin2); fclose(fout);
das ganze ginge auch klarer mit fgetc und ohne buffer...
-
Warum postet ihr fertige Lösungen?
-
weil ich auch sachse bin!
und weil solche aufgaben echt geschenkt sind. sieht auch nicht wie eine hausaufgabe aus.
-
c.rackwitz schrieb:
in ansi c gibt es kein copy()
Deshalb auch der Kommentar hinter dem Befehl -> freigegeben zum selberbasteln
und selbst wenn, die modes fuer fopen() machen wenig sinn.
Wieso das? Ich kopiere aus fin (deshalb "r"-Freigabe) nach fout ("w").
-
danke jungs für eure schnelle hilfe.
der code von dir (c.rackwitz ) hat perfekt funktioniert.
hat mir viel zeit erspart die ich gut gebrauchen kann.
danke
nur das mit den modis hab ich auch nicht verstanden
und selbst wenn, die modes fuer fopen() machen wenig sinn.
das macht ihr beide doch gleich oder nicht????
-
@CStoll: das "copy()" sollte dann aber wie ein strcat() funktionieren
aber waynefopen() modi:
r lesen
w schreiben
a anhaengen
b binaer, modifiziert rwa (rb, wb, ab)
t text, modifiziert rwa (rt, wt, at)
+ modifiziert rwa (rb+, wt+, a+,...), erlaubt lesen oder schreiben, wenn schon schreiben/anhaengen oder lesen angegeben wurde