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 ausgeben

    Funktioniert 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)...


Anmelden zum Antworten