Problem mit argc

Gast #2073854
Lesenswert?

Liebe Kollegen!

Ich habe einen Code bekommen den ich durchschauen soll. Leider scheitere 
ich schon bei den ersten Zeilen. Er beendet sich immer selber mit 
exit(1).

Wie kann ich das verhindern??? (einfach auskommentieren geht nicht)
1
int main(int argc, char *argv[])
2
{
3
  long  i,j;
4
  bit   help;
5
  //...
6

7

8
  printf("    Simulation \n\n");
9
  if(argc!=4) 
10
    {
11
      printf("###");
12
      exit(1);
13
    }
14
 
15
  Test2=atoi(argv[1]);
16

17
  Test2=atof(argv[2]);

Bussi
Sandy
#2073864
Lesenswert?

Bei if(argc!=4) wird das Programm mit exit(1) verlassen, wenn die anzahl 
der Parameter die zu zusätzlich eingibst ungleich "3" ist.
Wenn das Programm also test.exe heisst, und du es so aufrufst:
1
test.exe hallo du sau
Dann wird das was innerhalb der if-Abfrage steht nicht ausgeführt
Wenn du das Programm so aufrufst:
1
test.exe hallo du doofe sau
Dann hingegen schon
#2073885
Lesenswert?

Sandy schrieb:
> ich springe doch in´s if wenn argc nicht 4 ist. Wiso kann ich dann jede
> anzahl außer 3 eingeben?
Weil - wie bereits gesagt - argc MINDESTENS "1" ist in argc[0] (also das 
erste Element steht immer der name der binary als parameter.
Wenn du also test.exe ohne Parameter aufruftst ist argc bereits 1 und in 
argv[0] steht test.exe. Also kannst du noch 3 weitere Parameter beim 
Aufruf eingeben bis argc "4" ist

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren