Mit fgetc Text ausgeben - brauche dringend Hilfe
-
Nabend alle zusammen
Ich bin ein C-Anfänger
Ich habe ein Programm geschrieben, das mit fputc zeichenweise meine Eingabe in eine Textdatei schreibt. Soweit klappt alles.
Am Ende der Eingabe soll gefragt werden ob ich mein gespeicherter Text auf dem Bildschirm ausgeben will. Wenn ich die Frage mit 'j' beantworte soll mein Text wieder zeichenweise mit fgetc auf dem Bildschirm ausgegeben werden. Damit nicht alles, die Textausgabe soll außerdem seitenweise erfolgen. Wenn mein Text mehr als 24 Zeilen enthält, soll mit der Aufforderung "Nächste Seite mit <Enter>" die nächsten 24 Zeilen ausgegeben werden, bis Textende erreicht ist.Hier mein Quelltext: (Hab nur die Stelle aus meinem Programm kopiert, die wichitg ist).
#include <stdio.h> #include <conio.h> int main() { char ziel[40]; int abfrage; char ausgabe; FILE *datei; printf("Bitte geben Sie ihre Zieladresse ein: "); gets(ziel); ... // An diese Stelle gebe ich mein Text ein printf("\nText anzeigen? (j/n) "); abfrage = getche(); printf("\n"); if (abfrage = 'j') { datei = fopen(ziel,"r"); do { //An diese Stelle weiß ich nicht wie es weiter geht. } while (fgetc(datei) != EOF); } else { printf("ende\n"); } return 0; }
Wäre sehr dankbar, wenn jemand helfen könnte.
-
Du solltest dir mal anschauen, was fgetc macht.
-
und wo liegt dein problem?
-
SanjOo schrieb:
... do { //An diese Stelle weiß ich nicht wie es weiter geht. } while (fgetc(datei) != EOF); ...
for (;;) { int c = fgetc(datei); if (c == EOF) break; putchar (c); }
-
FILE*-freak schrieb:
for (;;) { int c = fgetc(datei); if (c == EOF) break; putchar (c); }
Danke dir, aber das ist nicht alles. Wie mach ich, dass er mein Text seitenweise ausgibt, wie ich schon oben beschrieben habe.
FILE*-freak schrieb:
und wo liegt dein problem?
Mein Problem liegt darin, dass ich nicht weiß wie ich mein gespeicherter Text seitenweise mit der Aufforderung "Nächste Seite mit Enter" ausgeben kann.
Die Zeilen sollen in eine Schleife gezählt werden. Wenn die Zeilen auf 24 hochgezählt sind, dann sollen die ersten 24 Zeilen ausgegeben werden und mit der Aufforderung "Nächste Seite mit Enter" soll die Nächste Seite ausgegeben werden u.s.w bis mein Textende erreicht ist.
-
lass doch einfach einen zähler laufen, der die ausgegebenen zeilen zählt, oder noch besser die buchstaben, weil auch eine einzige zeile verdammt lang werden und nicht auf den schirm passen kann.
hat der zähler einen bestimmten zählerstand erreicht, lässt du vom benutzer ein zeichen eingeben und setzt den zähler auf 0
usw.