Zeiger auf eine Datei
-
Ich hab ein Problem mit einer Datei.
FILE *datei;Ich lese eine Datei aus(einen codierten Text) jetzt möchte ich einen Zeiger haben, welcher auf die erste Position(Buchstaben) der Datei zeigt. Ich möchte jeden Buchstaben entschlüsseln und dann mit den nächsten Buchstaben weiter machen. Die veränderten Buchstaben sollen dann in der Datei gespeichert werden.
Mir fehlt ein Ansatz wie ich einen Zeiger auf die Datei bekomme, mit dem ich dann weiter arbeiten kann.
Kann mir jemand helfen?
-
Ähmm, wenn du die Datei mit fopen() öffnest, zeigt FILE* ja auf den ersten Buchstaben in der Datei. Einfach mit fgetc() einzeln die Buchstaben holen, verarbeiten, dann wieder fgetc() usw...
-
Ja das weiss ich.
Aber ich arbeite schon mit dieser Datei:Hier ein Ausschnitt aus meinem Programm.
Ich gehe bei der einzelnen Ausgabe "putchar(ch)" ja schon einmal durch. Dann hab ich die ganze Datei in dem Feld.printf("\nWo liegt die Datei(Beispiel:'C:\\test.txt')? "); gets(name); datei=fopen(name,"r+"); // Hole Datei zum Lesen if (!datei) { printf("\nDatei nicht gefunden\n"); // Pruefung ob Datei vorhanden system("pause"); exit(-1); // Programm abbruch } ch=fgetc(datei); while (!feof(datei)) { putchar(ch); if(ch>='A' && ch<='Z') ABC[ch -'A']++; if(ch>='a' && ch<='z') ABC[ch -'a']++; ch=fgetc(datei); }
Weiter unten im Programm will ich nun die Entschlüsselung vornehmen.
rewind(datei); // An den Anfang der Datei do { if (isalpha (???)) // Hier ist nun mein Problem, ich brauch einen // Zeiger auf den ersten Buchstaben, um die // Schleifen zu durchlaufen { if(isupper (???)) { ???-=y; if (???<65) ???+=26; } if(islower(???)) { ???-=y; if (???<97) ???+=26; } } ???++; }while(???!='\0'); printf("Der entschluesselte Text:%s \n",datei);
-
Was spricht dagegen im 2. Durchlauf wieder fgetc() zu nehmen?