Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Ich schon wieder!!! If(usw...)

BDelphi / 5 Antworten / Flachansicht Nickles

Hallo Zusammen,

Ich habe da mal wieder ein Problem, das Drucken unter DOS:

Ich habe hier ein kleines proggi, ein Teil eines Proggis

Schaut mal:

setbuf(stdout,NULL);
if((ei_kan = fopen(DATEI,"r")) == NULL)
{
fputs("Fehler beim Lesen der Datei!\\n", stderr);
}
else
{
fputs("Inhalt der Datei ",stdprn); /* Textausgabe als Ueberschrift */
fputs(DATEI,stdprn);
fprintf(stdprn,":\\n\\n");

while( ( ascii = fgetc ( ei_kan ) ) != EOF )
{
fputc ( ascii, stdprn );
if ( ascii == 1 ) fputc ( 33, stdprn );
}
putc ( ascii, stdprn );
fputc ( 12, stdprn );
}
return(0);
}

Das Problem ist jetzt, er Druckt nur die erste Zeile aus, danach ist schluss, wie kommt das?
Hat da jemand einen Rat!?

Danke schon mal im Vorraus
Thorsten

bei Antwort benachrichtigen
BDelphi thomas woelfer „ich denke der richtige weg auf end of file bei einem stream zu testen ist feof...“
Optionen

Hallo,

die Antwort war sehr kurz und knapp....
Aber leider kann ich nicht soviel damit anfangen, den ich bin noch blutiger Anfänger, und ich bin noch am C-üben.
Es ist so, das ich den Zeichensatz vom PC mit zeilenzahlen und Ordnungszahlen in eine Datei Speichern soll, Sie auf dem Bildschirm darstellen soll und zu guter letzt auf den Drucker aus geben soll.
Das klappt aber komischerweise nicht. Meine frage wäre, ob diese If-Anweisung ( if ( ascii == 1 ) fputc ( 33, stdprn ) ) irgend etwas zu tun hat. Diese anweisung "feof" kenne ich leider noch nicht.?
Hast Du vieleicht eine andere, einfachere Lösung für mich?
Danke schon mal im vorraus.
Gruß Thorsten

bei Antwort benachrichtigen