Jag kan inte förstå varför man kan skicka med argument till funktionen main(). Vad skall det vara bra för? :p
Argument till main()
6 svar · 202 visningar · startad av taper lawyer
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
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
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...
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... ;) )
Det där programmet skriver bara ut argumenten du har gett. Men du hade kunnat lägga till kod som tar hand om argumenten.
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å.