Beim Lesen einer Datei schreiben in derselben Datei?
Habe ich es geschafft, eine Datei zu öffnen und zu Lesen beim schreiben in eine andere Datei mit var=fopen(file,"r")
/"w"
aber auch mit r+ oder w+ veralteten ich kann nicht öffnen Sie eine Datei und dessen Inhalt ändern.
: Stell dir vor,
int formatacao (char original[]){/*se a cadeia nao tiver escrita em maiusculas, esta funçao vai alteralas para tal*/
int val1;
FILE * original_open;
original_open = fopen (original,"r+");
if (original_open==0){
printf ("ficheiro %c 1.",original);
}
while ((val1=fgetc(original_open))!=EOF){
if (val1>='a'&&val1<='z'&&val1){
fputc(val1-32,original_open);
}
else
fputc(val1,original_open);
}
fclose (original_open);
return (0);
}
Code funktioniert, kein Fehler, keine Warnung, nur das problem ist: es löscht den Inhalt der Datei wenn ich es so zu benutzen, ABER das funktioniert:
int main (){
int val1,val2,nr=0;
FILE* fp1;
FILE* fp2;
fp1=fopen ("DNAexample.txt","r");
fp2=fopen ("DNAexample1.txt","w");
if (fp1==0){
printf ("EPIC FAIL no 1.\n");
}
while ((val1=fgetc(fp1))!=EOF){
if (val1>='a'&&val1<='z'&&val1){
fputc(val1-32,fp2);
}
else
fputc(val1,fp2);
}
fclose (fp1);
fclose (fp2);
return (0);
}
Einwandfrei! Wie kann ich eine Datei öffnen, Lesen char durch char und entscheiden, ob ich mich ändern will den char oder nicht?
InformationsquelleAutor DaRk_f0x | 2011-04-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie eingreifen einer Datei-Funktion die Positionierung zwischen output und input, es sei denn, EOF gefunden wurde, auf Eingabe.
Diese funktioniert bei mir:
InformationsquelleAutor pmg
Öffnen Sie die Datei mit "a+" - option, um an Datei Anhängen:
w+ löscht, wenn die Datei existiert, oder erstellen Sie neu, wenn die angegebene nicht existiert. a+ öffnen Sie die vorhandene Datei, und Sie werden in der Lage sein, um es zu Bearbeiten.
Lesen Sie mehr über Datei-Operationen hier: http://www.functionx.com/cppbcb/cfileprocessing.htm
Sie können ändern, wo die Inhalte Hinzugefügt werden, indem man mit fseek hier ist die Dokumentation darüber, wie fseek funktioniert: cplusplus.com/reference/clibrary/cstdio/fseek
Hmmm, C99
7.19.5.3/5
sagt "Öffnen einer Datei mit dem append-Modus ('a' als erstes Zeichen in das argument Modus) bewirkt, dass alle nachfolgenden Schreibvorgänge in die Datei, die Sie gezwungen werden, zu der dann aktuellen Ende-der-Datei, unabhängig von intervenierenden Aufrufe der Funktion fseek."Danke an alle, ich löste es in einem anderen, einfacheren Weg, die kann Sie der Lehrer. Ich würde gerne besser code, aber er möchte nicht, dass komplexe Dinge so fseek und so sind offlimits.. vielen Dank für Ihre Zeit sowieso 🙂
InformationsquelleAutor anthares
Öffnen Sie die Datei im append-Modus
Nach dem C99-standard Anhängen zwingen wird, schreibt am Ende unabhängig von der Verwendung von
fseek
.InformationsquelleAutor AbhiRoczz...