chrisch Geschrieben 3. April 2008 Geschrieben 3. April 2008 Hallo, ich stelle mich mal kurz vor. Ich bin Christian komme aus der nähe von Hamburg und studiere Elektrotechnik. Nun zu meinen Problem, ich möchte in der Konsole ein C Programm aufrufen. In dieses Programm möchte ich zwei Textdateien eingeben.Die Textdateien befinden sich im Ordner des Programmes. Dieses soll wie folgt geschehen <Programmname> <Textdatei1> <Textdatei2> #include <stdio.h> #include <ctype.h> //Für die Umwandlung von Klein->Großbuchstaben double func(int); int main(char InpFileName[],char OutFileName[]) { char ch; char c; int Verschiebung=3; FILE *inp=NULL; FILE *oup=NULL; //Öffnen der Eingabedatei mit Kontrolle inp=fopen(InpFileName,"rt"); if(inp==NULL) { printf("\nFEHLER!!!\n"); return -1; } //Öffnen der Ausgabedatei mit Kontrolle oup=fopen(OutFileName,"wt"); if(oup==NULL) { printf("\nFEHLER!!!\n"); return -2; } Wenn ich das Programm jetzt starte bekomme ich immer eine Windowsfehlermeldung: "encrypt1.exe hat ein Problem festgestellt und muss beendet werden" Vielleicht könnt ihr mir ja helfen und sagen was ich falsch mache vielen Dank christian Zitieren
Guybrush Threepwood Geschrieben 3. April 2008 Geschrieben 3. April 2008 Der Kopf deiner main Funktion ist falsch. Du bekommst als ersten Parameter immer die Anzahl der Programmargumente und als zweiten Parameter ein Array mit den Argumenten selber übergeben. Wobei das erste Argument immer der Programmname selber ist. int main (int argc, char* argv[]) [/PHP] Zitieren
Amstelchen Geschrieben 3. April 2008 Geschrieben 3. April 2008 mich wundert, dass hier nicht schon der compiler einspruch erhebt. zumindest ausser dieser deklaration und *void* dürfte ja eigentlich nichts erlaubt sein. s'Amstel Zitieren
chrisch Geschrieben 3. April 2008 Autor Geschrieben 3. April 2008 Ok, erstmal vielen Dank dafür, wie weise ich den jetzt meinem inpfilename und outputfilename die Werte zu? int main (int argc, char* argv[]) { char inpfilename[]="argv[]"; char outfilename[]="argv[]"; habe ich da schon den richtigen Ansatz? Zitieren
Klotzkopp Geschrieben 3. April 2008 Geschrieben 3. April 2008 habe ich da schon den richtigen Ansatz?Nein, das ist Blödsinn. Die Aufrufparameter stehen in argv[1] und argv[2], wenn denn welche angegeben wurden (in argv[0] steht der Name deines Programms). Ob das der Fall ist, kannst du am Wert von argc erkennen. Ich würde dafür auch keine char-Arrays deklarieren, sondern direkt mit argv arbeiten. Oder hast du vor, die Strings zu ändern? Zitieren
chrisch Geschrieben 4. April 2008 Autor Geschrieben 4. April 2008 Ja, vielen Dank für die Hilfe. Ich bin neu auf dm Gebiet und hab da bei der Eingabe einen üblen Denkfehler gemacht :upps. Problem gelöst . vielen Dank christian Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.