Avatar billede sesso Nybegynder
06. november 2007 - 22:16 Der er 7 kommentarer og
1 løsning

Hvad er det for noget med command og virtual-argument?

Hej,
jeg har flere steder set brugen af ting som int main(int argc, char *argv[]) og ting i den dur, men har aldrig fundet ud af hvad det betyder...
Har kigget lidt rundt på nettet, og læst mig frem til noget med main-funktionens return værdi, men har desværre ikke forstået en pind af det:/

Er der nogen der kan forklare, hvad det er for noget?
Avatar billede arne_v Ekspert
06. november 2007 - 22:20 #1
hvis du kalder dit program som:

foobar a bb ccc

saa vil:

argc = 4
argv[0] = "foobar.exe"
argv[1] = "a"
argv[2] = "bb"
argv[3] = "ccc"
Avatar billede sesso Nybegynder
07. november 2007 - 15:29 #2
Hvad bruger man det til?
Hvornår er det godt at bruge og hvornår er det ikke?
Avatar billede arne_v Ekspert
07. november 2007 - 16:11 #3
Man bruger det naar man vil starte sit program med argumenter.
Avatar billede sesso Nybegynder
07. november 2007 - 16:44 #4
kan jeg lokke dig til at gå lidt mere i dybten, for den uvidende?
Avatar billede arne_v Ekspert
07. november 2007 - 16:57 #5
Jeg kan give et eksempel.

int debug = FALSE;

int main(int argc, char *argv[])
{
  if(argc > 1 && strcmp(argv[1],"debug") == 0) debug = TRUE;

Hvis man nu starter programmet med:

foobar

saa er debug flaget false.

Hvi man starter med:

foobar debug

saa er debug flaget true og (saa udskriver koden et eller andet debug info).
Avatar billede intel4004 Novice
09. november 2007 - 19:05 #6
Argumenter til programmet skrives efter exe-filens navn når programmet køres:

programnavn arg1 arg2 ... argN

Argumenter er et godt værktøj, hvis man har brug for at starte ens program på en speciel måde med visse opsætninger, såsom et debug-flag som arne_v viser.

Du kan også forestille dig et simpelt tal-sorterings-program som sorterer tallene i argumenterne i en bestemt rækkefølge bestemt af det første argument: desc (faldende) eller asc (stigende).

sort asc 4 3 5 2 3 4 1 99 22 4 0

Dette er tit en god øvelse til indlæsning af argumenter i C og C++.

Mvh Intel4004
Avatar billede sesso Nybegynder
09. november 2007 - 22:12 #7
Mange tak:)
Jeg har aldrig før tænkt på det, på den måde, men jeg støder jo egentligt hele tiden på det, når jeg befærder mig rundt med terminalen (f.eks. gedit _filnavn_, for at åbne en fil med programmet gedit):)

Hvis du smider et svar, arne?
Avatar billede arne_v Ekspert
10. november 2007 - 01:14 #8
gerne
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