Quelltext-Druckprogramm druckt (noch) nicht
-
Habe hier n kleines Druckprogramm, mit dem man den Quelltext anderer .c Dateien inkl den Zeilennummern & Doppelpunkten drucken kann.
#include <stdlib.h> #include <stdio.h> void titel_anlegen(char *hello); int zeile, seite; int main( int argv, char *argc[] ) { char puffer[256]; FILE *fp; if( argv < 2 ) { printf("\nDie korrekte Eingabe lautet: " ); printf("\n\ndrucken hello.c\n" ); exit(1); } if (( fp = fopen( argc[1], "r" )) == NULL ) { fprintf( stderr, "Fehler beim Öffnen der Datei, %s!", argc[1]); exit(1); } seite = 0; zeile = 1; titel_anlegen( argc[1]); while( fgets( puffer, 256, fp ) != NULL ) { if(zeile % 55 == 0 ) titel_anlegen( argc[1] ); printf("%4d:\t%s", zeile++, puffer ); } printf("\f" ); fclose(fp); return 0; } void titel_anlegen( char *hello ) { seite++; if ( seite > 1) printf("\f" ); printf("Seite: %d, %s\n\n", seite, hello ); }
Im Ordner auf den CMD zugreift habe ich die .exe Version dieses Programms (drucken.exe) & die zu druckende C-File (hello.c) liegen.
Wenn ich jetzt im CMD folgendes eingebe, 'drucken hello.c', wird mir der Code von 'hello.c' im CMD aufglistet.#include <stdio.h> int main() { printf("Hello, World!\n"); getchar(); return 0; }
...aber dann stehts auch schon an. Der Drucker wird nicht gestartet & es wird nichts gedruckt.
Kann es sein, dass ich den Pfad zum Drucker & auch den Druckernamen erstmal im Code des Druckprogramms (drucken.c) angeben muss?
Wenn ja, wie mache ich das?Bitte um Feedback.
-
Eine vermutlich ganz dumme Frage: Wieso sollte das Programm das du gezeigt hast etwas drucken? Ich sehe da nur printf als Ausgabe und das geht auf die Standardausgabe. Und solange die Standardausgabe die Konsole ist, landet dein Text eben dort. Wenn du Drucken willst, musst du entweder in deinem Programm direkt drucken (das heißt irgendwie das Betriebssystem ansprechen und dies darum bitten etwas zu drucken) oder aber die Ausgabe auf den Drucker umleiten. Du benutzt eine DOS-Konsole? Dann ist das vermutlich etwas in dieser Art (ungetestet):
drucken hello.c > PRN
-
Naja ich tippe mal auf troll, aber für den unwahrscheinlichen fall dass das ernst gemeint ist:
1. argc = argumentcounter
2. argv = argumentvektorDa haste wohl was verwechselt
Ach ja, "printf" spricht keinen Drucker an, es "druckt" auf den Bildschirm
(Bzw. es schreibt in stdout)Hoffe ich konnte helfen
Zum internen drucken (also im Programm, ohne das umleiten von stdout) brauchste wahrscheinlich WINAPI und das ist wieder ein anderes Thema.
-
hm, nee da tut sich nichts wenn ich in die Konsole 'drucken hello.c > PRN eingebe.
Kann ich denn nicht irgendwie im Quelltext von dem Druckprogramm (drucken.c) auf den Drucker verweisen?
Bin noch Anfänger & gerade am C lernen, darum auch manchmal n paar nich so tiefgründige Fragen & Probleme von mir in nächster Zeit
Aber kann ja nur besser werden...
-
R3FRESH schrieb:
hm, nee da tut sich nichts wenn ich in die Konsole 'drucken hello.c > PRN eingebe.
Dann informier dich mal wie das bei deiner Konsole geht. Das ganze ist jedenfalls stark systemabhängig. Und da du nicht damit herausrücken willst mit was du da überhaupt arbeitest, habe ich oben bloß geraten.
Kann ich denn nicht irgendwie im Quelltext von dem Druckprogramm (drucken.c) auf den Drucker verweisen?
Auch hochgradig systemabhängig. Ich brauche mehr Details.
-
Achso is das.
Also ich arbeite mit dem Windows XP & der dazugehörigen CMD-Konsole, die im Windows/System32-Ordner rumliegt.
Als Editor nehme ich den Microsoft Visual C++ 2010 Express.
-
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum C (C89 und C99) in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.