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!