Zeichen von und in Datei lesen und schreiben
-
Hi,
Habe folgendes C-Prog geschrieben, das
a) in einer bestimmten Datei nach einer Zeichenkette sucht
b) Den gefunden String umgedreht am Bildschirm ausgibt
und c)in die Datei einen Character ('X') hineinschreibt, wenn der String gefunden wurde. Hier der Code:#include <windows.h> #include <stdio.h> #include <stdlib.h> int main (int argc, char *argv[]) { FILE *datei; char name[30]; char n[256]; char m[256]; char p[256]; char *ptr; int i=0; char ch='X'; printf("In welcher Datei wollen Sie suchen?\n"); gets(n); printf("Nach welcher Zeichenketten möchten Sie suchen?\n"); gets(m); if((datei=fopen(n,"a+"))) { printf("Geoeffnet!\n"); while(n[i]!=EOF) { i++; p[i]=fgetc(datei); //Dateiinhalt in Feld schreiben, zwecks Vergleich printf("%c\n",p[i]); ptr=strstr(p,m); //String-Suche if(ptr) { printf("gefunden\n"); putc(ch,datei); //Schreiben von 'X' in Datei for(i=strlen(m)-1;i>=0;i--) //verkehrt ausgeben putchar(m[i]); break; } } fclose(datei); } else printf("Fehler!\n"); getchar (); return 0; }
Es funzt alles bis auf das Schreiben des 'X' in die Datei!
Warum?Mfg
Bluefoxxp
-
Auszug aus der Hilfe:
Zwischen einem Wechsel von "Schreiben" nach "Lesen" muß allerdings ein Aufruf von fseek oder rewind stattfinden.
Zwischen einem Wechsel von "Lesen" nach "Schreiben" muß ebenfalls fseek oder rewind aufgerufen werden, es sei denn, die Leseoperation hat das Dateiende erreicht.