Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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....

Geschrieben

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

Geschrieben

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

Geschrieben
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.

Geschrieben

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

Geschrieben
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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...