Beispiel-Code Datei schreiben und Lesen
-
Hallo,
Vieleicht kann mir hier jem. weiterhelfen.
Ich möchte in C aus Datei a und b lesen, den Inhalt von Datei a und b getrennt durch ein trennzeichen in datei c schreiben.
Kann mir jem. ein Beispiel-Code posten?Danke, Danke
Michi
-
-
Naja leider hilft mir das ned weiter..
Mein Code:
/*putc.c*/ #include <stdio.h> #include <stdlib.h> //exit #include <string.h> int main(int argc, char *argv[]) { FILE *quelle, *quelle2, *ziel; int c; quelle=fopen(argv[1],"rb"); quelle2=fopen(argv[2],"rb"); if(quelle==NULL) { printf("Konnte Quelldatei nicht finden bzw. öffnen!\n"); exit(0); } else { ziel=fopen(argv[3],"w+b"); if(ziel==NULL) { printf("Konnte Zieldatei nicht erzeugen!\n"); exit(0); } else { while((c=getc(quelle)) != EOF) { putc(c,ziel); } //Hier brauche ich noch ein Trennzeichen while((c=getc(quelle2)) != EOF) { putc(c,ziel); } } } return 0; }
Beim Trennzeichen, habe ich Probleme und beim Rückgängig machen, d.h. Aus einer Datei durch das Trennzeichen wieder zwei machen.
Danke jetzt schon
bin am verzweifeln..Michi
-
fprintf(ziel, "#");
Also das wäre dann z.B. die Zeile, die du da einfügen müsstest wo du dein Trennzeichen schreiben willst...
-
Also komplett sieht dein Programm bei mir jetzt so aus und es funktioniert auch...Ok?
/*putc.c*/ #include <stdio.h> #include <stdlib.h> //exit #include <string.h> int main(int argc, char *argv[]) { FILE *quelle, *quelle2, *ziel, *ziel2; int c; quelle=fopen(argv[1],"rb"); quelle2=fopen(argv[2],"rb"); if(quelle==NULL) { printf("Konnte Quelldatei nicht finden bzw. öffnen!\n"); exit(0); } else { ziel=fopen(argv[3],"w+b"); if(ziel==NULL) { printf("Konnte Zieldatei nicht erzeugen!\n"); exit(0); } else { while((c=getc(quelle)) != EOF) { putc(c,ziel); } //Hier brauche ich noch ein Trennzeichen fprintf(ziel, "#"); while((c=getc(quelle2)) != EOF) { putc(c,ziel); } } } fclose(quelle); fclose(quelle2); fclose(ziel); quelle=fopen(argv[3],"rb"); ziel=fopen(argv[4],"w+b"); ziel2=fopen(argv[5],"w+b"); while((c=getc(quelle)) != 35) //Die 35 ist der Dezimalwert für das Trennzeichen # { putc(c,ziel); } while( (c=getc(quelle)) != EOF ) { putc(c,ziel2); } fclose(quelle); fclose(ziel2); fclose(ziel); return 0; }
-
@Maquis
Und wenn du anstatt 35 einfach '#' schreibst??@nob
Und was machst du, wenn dein Trennzeichen in der 1. Datei bereits vorkommt beim wiederaufsplitten??
-
@AJ: Oder so. Manchmal sieht man den Wald vor lauter Bäumen nicht
-
Soweit so gut danke vielmals für eure Mühe, es funktioniert. Wegen dem Trennzeichen ich merke mir nun die Position an der die 2 Datei beginnt + Trennzeichen