webForumDet fria alternativet

Argument till main()

6 svar · 202 visningar · startad av taper lawyer

taper lawyerMedlem sedan jan. 2004155 inlägg
#1

Jag kan inte förstå varför man kan skicka med argument till funktionen main(). Vad skall det vara bra för? :p

lunaMedlem sedan juli 2004181 inlägg
#2

Det är ganska skönt att kunna skicka inparametrar till program... hur skulle världen se ut om inte detta hade gått att göra? ;P

taper lawyerMedlem sedan jan. 2004155 inlägg
#3

luna skrev:

Det är ganska skönt att kunna skicka inparametrar till program... hur skulle världen se ut om inte detta hade gått att göra? ;P

Ingen aning ;) , men jag fattar fortfarande inte varför man gör det. :p

lunaMedlem sedan juli 2004181 inlägg
#4

Du behöver inte... i princip kan du skriva
int main( void )

Varför man gör det är just för att kunna skicka inparametrar till ett programmet. tänk vad omständigt om kommandon i DOS såsom "dir" inte skulle ta inparametrar eller chmod i *nix... då skulle du efter att startat programmet fått mata in inparametrar...
exempelvis så är:
# chmod -c kalle:kalle *
lättare och mer användarvänligt än att efter att köra chmod måste ange parametrar...

taper lawyerMedlem sedan jan. 2004155 inlägg
#5

Men om man skapar ett litet program som det här:

#include <stdio.h>
int main(int argc, char *argv[])
{
   for(int i=1; i < argc; i++) {
      printf(argv[i]);
   }
   return 0;
}

Vad är då argumenten bra för?
( Jag har ingen aning om vad koden gör. Hittade den någonstans... ;) )

UlfTMedlem sedan maj 20018 027 inlägg
#6

Det där programmet skriver bara ut argumenten du har gett. Men du hade kunnat lägga till kod som tar hand om argumenten.

Alpha IIMedlem sedan maj 20002 993 inlägg
#7

argc: Antalet argument
argv: en vektor med argumenten som c-strängar

Om du tex vill att vissa fltyper skall öppnas med ditt program måste du göra så att programmet tar filnamnet till den fil som öppnas som ett argument. Annars måste du alltid öppna filer genom nån form av gränssnitt i ditt program.

T ex:
Om du kör programmet genom "run":
"mittprogram.exe filen.txt"
Så skickas filen.txt som ett argument till programmet och du kan ta till lämplig åtgärd och öppna filen.

Det finns självklart många andra sätt att använda argumenten också.

130 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)