Vorstellen + list_it
-
Hallo erst mal,
habe mir das Buch "In 21 Tagen C" gekauft.
Für den 2ten Tag ist ein Programmtext drinn, der beim Ausführen sich selbst darstellt, mit Zeilennummer jeweils vor jeder Zeile.
Funzt bei mir aber irgendwie nicht.
Verwende: Microsoft Visual C++ 6.0/*list_it.c zeigt ein Listing mit Zeilennummern an */ #include <stdio.h> #include <stdlib.h> void display_usage(void); int line; int main( int argc, char *argv[] ) { char buffer[256]; FILE *fp; if( argc < 2 ) { display_usage(); return; } if (( fp = fopen( argv[1], "r" )) == NULL ) { fprintf( stderr, "Fehler beim Öffnen der Datei, %s!", argv[1] ); return; } line = 1; while( fgets( buffer, 256, fp ) != NULL ) fprintf( stdout, "%4d:\t%s", line++, buffer ); fclose(fp); return 0; } void display_usage(void) { fprintf(stderr, "\nProgramm wie folgt starten: " ); fprintf(stderr, "\n\nlist_it Dateiname.ext\n" ); }
Bei mir kommt aber nur:
Programm wie folgt starten:
List_it Dateinme.ext
Press any...Vielen Dank schon mal für Hilfe!
-
Vermutlich hast du ihm weniger als 2 Parameter mitgegeben - deswegen erklärt er dir die Handhanbung.
Ich schiebe dich mal ins C Forum, die können dir sicher besser helfen. Es scheint ja kein GUI Problem zu sein.
-
Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Kurz gesagt: Wenn du schon die argc/argv auswertest, mußt du dorthin auch etwas übergeben. D.h. du mußt dein Programm z.B. so aufrufen:
List_it list_it.c
(das sollte deinen Quellcode mit Zeilennummern ausgeben)
Wenn du in der Konsole nur "List_it" angibst, bekommt die main in argc (=Anzahl der Argumente) eine 1 und in argv (=Argumentliste) "List_it.exe" und "" übergeben - und das erste if() wird wirksam und erklärt dir, wie es richtig gemacht wird.
PS: Übrigens solltest du die "return;" Anweisungen ersetzen durch "return 0;" - main() will schließlich einen Wert zurückgeben.