String über argv einlesen und damit weiterarbeiten



  • Ich möchte ein Kommandozeilenargument, das ich über argv erreichen kann auslesen und abspeichern. Aber irgendetwas mache ich falsch 😕

    *outputfile = argv[2];

    bei dieser Zeile motzt der Compiler immer rum. Wie kann ich das korrigieren?

    #include <stdio.h>
    #include <string.h>
    
    int main (int argc, char * argv[])
    {
    
        char *outputfile;
        FILE *instream;
        FILE *outstream;
        int line;
    
        //Eingabe ./Nummerierer -o datei.txt
        if(argc < 2) {
            perror("Es muss ein File nach -o angegeben werden. Benutzung: ./Nummerierer -o datei.txt");
            return 0;
        }
    
        if(strcmp(argv[1], "-o") == 0) {
            if(argv[2]!= NULL) {
                *outputfile = argv[2];
            } else {
                perror("Kein Dateiname angegeben nach -o");
                return 0;
            }
        } else {
            perror("Es wurde kein -o angegeben. Danach muss der Dateiname folgen. Benutzung: ./Nummerierer -o datei.txt");
        }
    .
    .
    .
    .
    .
    

    Bin irgendwie komisch gepolt auf PHP im Moment und komm nicht klar...



  • argv[2] ist vom typ char* und outputfile ist vom typ FILE*.
    das verträgt sich nicht sonderlich gut.



  • In der Zeile ist der Stern am Anfang überflüssig.
    "outputfile" ist ein Zeiger auf Zeichen(array, d.h. normalerweise ein String), "*outputfile" ist das (erste) Zeichen an der dortigen Adresse (und da du den Zeiger nicht initialisiert hast, vermutlich Müll).



  • Oh funzt alles, war irgendwie blind... Zeit aufzuhören. Danke!


Anmelden zum Antworten