Avatar billede freddy04 Nybegynder
26. oktober 2002 - 21:46 Der er 7 kommentarer og
1 løsning

parameter til main

hvordan får jeg main til at modtage et parameter ved kørsel?

fx:
int main(int tal) {
if (tal==3) ...

således at jeg kan starte programmet med ./program 1

ovenstående giver ingen fejl ved komp. men virker heller ej
Avatar billede arne_v Ekspert
26. oktober 2002 - 21:48 #1
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int tal = atoi(argv[1]);
  ...
}
Avatar billede arne_v Ekspert
26. oktober 2002 - 21:49 #2
argc indeholder antal argumenter (inklusive program-navn)
argv indeholder argumenterne som strenge
atoi konverterer fra streng til int
Avatar billede freddy04 Nybegynder
26. oktober 2002 - 21:54 #3
takker :-)
Avatar billede freddy04 Nybegynder
26. oktober 2002 - 22:14 #4
hmmm æv! nu kan man slet ikke køre programmet uden at indtaste en parameter når man kræver det i main. Det skulle jo være en option...
Avatar billede arne_v Ekspert
26. oktober 2002 - 22:16 #5
Prøv med noget i retning af:

#include <stdlib.h>

int main(int argc, char *argv[])
{
  int tal;
  if(argc > 1) {
    tal = atoi(argv[1]);
  } else {
    tal = 77;
  }
  ...
}
hvis nu default ved ikke angivet tal skal være 77.
Avatar billede freddy04 Nybegynder
26. oktober 2002 - 22:21 #6
tror jeg bare laver det så man taster et bogstav i stedet for tal - det bliver vis nemmere med strcmp
Avatar billede arne_v Ekspert
26. oktober 2002 - 22:23 #7
Du kan bare strcmp'e på argv[whatever].

Men også med det kan det være godt at teste
på argc først.
Avatar billede freddy04 Nybegynder
26. oktober 2002 - 22:27 #8
nu virker det - manglede bare if argc >1
:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester