2017-02-06 4 views
0

Ich schreibe ein Programm, das 2 Dateinamen als Argumente akzeptiert, dann öffnet es und verarbeitet die Daten. Problem ist, dass es die zweite Datei aus irgendeinem Grund nicht öffnet.C-Programm Datei nicht als Argument übergeben

int main(int argc, char *argv[]) { 

    FILE *fltr_file, *ig_file; 

    ig_file = fopen(argv[2], "r"); 
    fltr_file = fopen(argv[3], "r"); 
} 

fltr_file Punkte auf NULL (0x0), wenn ich das Programm ausführen. Es dauert ig und fltr als Argumente, beide Dateien sind im Verzeichnis des Programms vorhanden.

+2

Oh, als Vermutung: 'fopen (argv [2], "r"); fopen (argv [3], "r"); 'sollte' fopen sein (argv [1], "r"); fopen (argv [2], "r"); ' – kaylum

+0

Ihre Vermutung war richtig, danke! – Mereketh

Antwort

1

Der argv[0] ist der Programmname, der argv[1] ist der erste Parameter.

Wenn Ihr Programm nur zwei Argumente akzeptiert, müssen Sie wahrscheinlich Indizes 1 und 2:

ig_file = fopen(argv[1], "r"); 
fltr_file = fopen(argv[2], "r"); 
+0

Silly mich, du hast Recht! Vielen Dank! – Mereketh

Verwandte Themen