Konsolenausgabe
-
Hallo
da ich nicht weiß wo dieses Thema hingehört habe ich es einmal hier eingefügt.
{ int opt; int opt_i; char name[30]; opt_i=0; if (argc <= 1) { fprintf (stderr, "This program needs arguments....\n\n"); } while ((opt = getopt (argc, argv, "a:")) != -1) { switch (opt) { case 'a': opt_i=1; strcpy(name,optarg); break; // // if (opt_i==1) { openfile (name); } } void openfile(char openfile_n[30]) { FILE *file; char hex [150]; file=fopen(openfile_n,"r"); if(file != NULL) { while (file!=EOF) { fgets(hex, 150, file); puts(hex); } } else { printf("Can't open or find file"); exit(1); } }
Ich wollte dass es die Eingabe von optarg in name kopiert und dann den namen der Datei ins Unterprogramm übergibt.
Im Unterprogramm soll es die Datei öffnen und den hex-code im Dos ausgebenFunktioniert aber nicht ganz.
MfG
-
Funktioniert aber nicht ganz.
Und jetzt?
-
while (file!=EOF)
Bei dieser zeile meckert er.
Passt das mit dem "char hex[150]" oder schicke ich das aus der main Datei statt dem name[30]
-
file ist ein File-Pointer. Esmacht keinen Sinn diesem mit EOF zu vergleichen. Pack fgets in den while clause rein. Der liefert Dir NULL bei eof.
Oder benutze feof(file)...