Jay Peg Geschrieben 11. Juli 2002 Geschrieben 11. Juli 2002 Hi Leut´s Hab folgendes Programm geschrieben: #include <iostream> #include <stdlib.h> using namespace std; int main(int eingabe) { int i; for (i = 0; i < eingabe; i++) { cout << "Parameter " << eingabe << endl; } eingabe=0; system("PAUSE"); return 0; } Wenn ich nun dieses Programm mit dem Parameter 10 aufrufe sollte ja die Schleife 10x durchlaufen werden und somit 10 x Parameter 10 dastehen... sollte man meinen... Bei mir kommt aber egal was ich für einen Parameter eingebe die 2 und die Schleife läuft auch nur 2 mal durch... Ohne Parameterübergabe kommt die 1 ?? Ich glaub ich steh auf dem Schlauch.... Zitieren
Goos Geschrieben 11. Juli 2002 Geschrieben 11. Juli 2002 Frage: Wer hat dir denn gesagt, dass deine Main so -> int main(int eingabe) aussehen darf? Goos Zitieren
Jay Peg Geschrieben 11. Juli 2002 Autor Geschrieben 11. Juli 2002 Eigentlich keiner... hab´s irgenwo mit google in nem forum gefunden.. Hast Du ne Ahnung wie´s funzt Zitieren
Goos Geschrieben 11. Juli 2002 Geschrieben 11. Juli 2002 Versuchs mal mit: int main(int argc, char* argv[]) wobei argc die Anzahl der uebergebenen Argumente ist und in argv[] die Argumente zu finden sind. Wenn du also nur 10 uebergeben willst, dann musst dein Argument noch in nen Integer umwandeln um es fuer deine Schleife benutzen zu koennen.....vorzugsweise mit atoi. Goos Zitieren
capitanx Geschrieben 12. Juli 2002 Geschrieben 12. Juli 2002 Warum argv[] umwandeln das verstehe ich net ganz. Meiner Meinung nach sollte es so funktionieren. #include<iostream.h> int main(int argc, char* argv[]) { int i; for(i = 0; i < argc; i++) cout << "Param. Nr. " + i + ": " + argv + "\n"; } //main Zitieren
capitanx Geschrieben 12. Juli 2002 Geschrieben 12. Juli 2002 Wenn ich nun dieses Programm mit dem Parameter 10 aufrufe sollte ja die Schleife 10x durchlaufen werden und somit 10 x Parameter 10 dastehen... sollte man meinen... Also ist ja ganz klar... in der Variable argc steht die ANZAHL der Parameter (dateiname des Programms und in deinem Fall 10) also 2 damit wird die Schleife auch nur 2 mal durchlaufen. in der Variablen argv[1] (argument Value) steht dann deine 10 als pointer auf einen char. Dein (und mein vorhergehendes) Programm macht also nichts anderes als die Schleife so oft zu durchlaufen wie Parameter angegeben wurden. Wenn du wirklich ne Zahl übergeben willst um mit ihr zu arbeiten, musst du wie schon erwähnt auf das entsprechende Argument (in deinem Fall: argv[1]) zugreifen und in einen integer umwandeln. Zitieren
Darth_Zeus Geschrieben 12. Juli 2002 Geschrieben 12. Juli 2002 tu mir mal bitte den gefallen und schreib, was dein programm eigentlich machen soll. eine schleife soll x-mal durchlaufen werden und dann was? ich glaube, du verkünstelst dich da masslos für ne sache, die einfacher auch geht Zitieren
Jay Peg Geschrieben 12. Juli 2002 Autor Geschrieben 12. Juli 2002 Das war so ein generelles Ding, ich wollte nicht´s bestimmtes machen!! Also danke an alle!! Zitieren
Goos Geschrieben 15. Juli 2002 Geschrieben 15. Juli 2002 Original geschrieben von capitanx Warum argv[] umwandeln das verstehe ich net ganz. Meiner ...na weil nach dem Anfangsposting nicht alle uebergebenen Argumente ausgegeben werden sollten, sondern die Schleife bei einer uebergabe von 10 dann auch 10 mal durchlaufen werden soll. Deshalb muesste man dann den String "10" umwandeln Goos 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.