Andi_Rostock
18-04-2006, 09:01
Hallo ich möchte mein Programm eine variable Parameterliste verpassen. Also ungefähr so:
"./Programm AnzPara Param1 Param2 Param3 ..."
bzw.
./Programm 3 1e5 1e6 1e-3
./Programm 5 1e4 1e3 1e-2 0.23132 23132
Bisher sieht´s bei mir so aus. Ist leider nur statisch
int main(int argc, char **argv)
{
float test[2];
if (argc==3){
sscanf(argv[1],"%f",&test[0]);
sscanf(argv[2],"%f",&test[1]);
}
else {
test[0]=1.;
test[1]=4;
}
printf(" %f %f \n",test[0],test[1]);
}
Für mich stellt sich die Frage, wie ich die Geschichte dynamisch hinbekomme.
Also irgendwie so:
float *test;
int i,n;
if (argc>=2){
sscanf(argv[1], "%i",&i);
test=calloc(i, sizeof(float));
for (n=2;n<i+2;n++){
sscanf(argv[n],"%f",&test[n]);
}
}
Klappt natürlich nicht. :(
Habt Ihr eine Idee?
Viele Grüße
Andreas
"./Programm AnzPara Param1 Param2 Param3 ..."
bzw.
./Programm 3 1e5 1e6 1e-3
./Programm 5 1e4 1e3 1e-2 0.23132 23132
Bisher sieht´s bei mir so aus. Ist leider nur statisch
int main(int argc, char **argv)
{
float test[2];
if (argc==3){
sscanf(argv[1],"%f",&test[0]);
sscanf(argv[2],"%f",&test[1]);
}
else {
test[0]=1.;
test[1]=4;
}
printf(" %f %f \n",test[0],test[1]);
}
Für mich stellt sich die Frage, wie ich die Geschichte dynamisch hinbekomme.
Also irgendwie so:
float *test;
int i,n;
if (argc>=2){
sscanf(argv[1], "%i",&i);
test=calloc(i, sizeof(float));
for (n=2;n<i+2;n++){
sscanf(argv[n],"%f",&test[n]);
}
}
Klappt natürlich nicht. :(
Habt Ihr eine Idee?
Viele Grüße
Andreas