Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einem Programm beim starten Variablenwerte mitgeben



Berufspenner
22-01-2003, 12:46
Hi@all

Wie kann ich einem C++ Programm beim Aufrufen Variablenwerte mitgeben? So in Form von "Prgramname -1" oder "Programname -abc". Lässt sich das mit einer Switch() Anweisung regeln? Wenn ja wie müsste das in etwas aussehe?

Cu
André

ReSeT
22-01-2003, 12:53
Hi!

In C



#include <stdio.h>

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

for (i = 0; i < argc;i++) printf("Argument %d = %s\n",argc,argv[i]);

return 0;
}


argc beinhaltet die Anzahl der Argumente aus der Kommandozeile .
argv ist ein Vektor von Pointern, die auf die einzelnen Argumente zeigen.
argv[0] ist immer der Programmname.

in C++



#include <iostream>

using namespace std;

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

{
int i;

for (i = 0; i < argc;i++) cout << "Argument " << argc << " = " << argv[i] << endl;

return 0;
}



Das ganze mal mit "Programmname Hallo Welt!" aufrufen, dann siehst du schon wie's läuft.

GreetZ

ReSeT

Boron
22-01-2003, 12:56
int main( int argc, char* argv[])
{
...
}

Beispiel: Programname -abc -gaga

In argc steht die Anzahl der Paramter, wobei der Programmname iclusive absolutem Pfad mitgezählt wird. Im Beispiel ist argc also 3.

argv ist ein Feld von Strings, das die Parameter enthält.
In argv[0] steht immer Programmname iclusive absolutem Pfad.
Ab arg[1] kommen die Paramter.

Im Beispiel enthält argv[1] den String "-abc".
argv[2] enthält "-gaga".

Du kannst in deinem Programm mit normalen Stringoperation auf argv zugreifen und die Strings dann auswerten.

The Ripper
23-01-2003, 17:48
Zum Auswerten würde ich eher getopt() nehmen, damit lässt sie sich auf ein switch-Statement reduzieren.
Ein Anwendungsbeispiel gibts in der Manpage (man 3 getopt).

Berufspenner
23-01-2003, 19:05
Hi@all

Danke für eure postings. Ich werds dann mal versuchen.

Cu
André

TheDodger
24-01-2003, 06:32
Original geschrieben von The Ripper
Zum Auswerten würde ich eher getopt() nehmen, damit lässt sie sich auf ein switch-Statement reduzieren.
Ein Anwendungsbeispiel gibts in der Manpage (man 3 getopt).

jaja ... und da bastelt man sich immer noch was eigenes :)
Hätt ich früher sehen sollen ...