Najpomembnejša funkcija C je funkcija main(). Večinoma je definiran s povratnim tipom int in brez parametrov.
int main() { ... }>
Argumente ukazne vrstice lahko damo tudi v C. Argumenti ukazne vrstice so vrednosti, podane za imenom programa v lupini ukazne vrstice operacijskih sistemov. Argumente ukazne vrstice obravnava funkcija main() programa C.
Za posredovanje argumentov ukazne vrstice običajno definiramo main() z dvema argumentoma: prvi argument je število argumentov ukazne vrstice in drugi je a seznam argumentov ukazne vrstice.
c++ pretvori int v niz
Sintaksa
int main(int argc, char *argv[]) { /* ... */ } or int main(int argc, char **argv) { /* ... */ }>
tukaj,
- argc (ARGument Count) je celoštevilska spremenljivka, ki shrani število argumentov ukazne vrstice, ki jih posreduje uporabnik, vključno z imenom programa. Torej, če posredujemo vrednost programu, bi bila vrednost argc 2 (ena za argument in ena za ime programa)
- Vrednost argc ne sme biti negativna. argv (ARGument Vector) je niz znakovnih kazalcev, ki navaja vse argumente.
- Če je argc večji od nič, bodo elementi polja od argv[0] do argv[argc-1] vsebovali kazalce na nize.
- argv[0] je ime programa, od tega do argv[argc-1] je vsak element argument ukazne vrstice.
Za boljše razumevanje zaženite to kodo na vašem računalniku Linux.
Primer
Spodnji primer prikazuje tiskanje argumentov ukazne vrstice.
C
// C program named mainreturn.c to demonstrate the working> // of command line arguement> #include> // defining main with arguments> int> main(> int> argc,> char> * argv[])> {> > printf> (> 'You have entered %d arguments:
'> , argc);> > for> (> int> i = 0; i printf('%s
', argv[i]); } return 0; }> |
>
>
Izhod
You have entered 4 arguments: ./main geeks for geeks>
za terminalski vhod
$ g++ mainreturn.cpp -o main $ ./main geeks for geeks>
Opomba: Standardi C dovoljujejo tudi druge formate, odvisne od platforme; na primer, Unix (čeprav ne POSIX.1) in Microsoft Visual C++ imata tretji argument, ki podaja okolje programa, ki je sicer dostopno prek getenv v stdlib.h. Za podrobnosti glejte program C za tiskanje spremenljivk okolja.
Lastnosti argumentov ukazne vrstice v C
- Posredujejo se funkciji main().
- So parametri/argumenti, ki se posredujejo programu, ko je priklican.
- Uporabljajo se za krmiljenje programov od zunaj, namesto da bi te vrednosti trdo kodirali znotraj kode.
- argv[argc] je kazalec NULL.
- argv[0] vsebuje ime programa.
- argv[1] kaže na prvi argument ukazne vrstice in argv[argc-1] kaže na zadnji argument.
Opomba: Vse argumente ukazne vrstice posredujete ločene s presledkom, če pa ima sam argument presledek, lahko takšne argumente posredujete tako, da jih postavite v dvojne ali enojne narekovaje.
Primer
Spodnji program prikazuje delovanje argumentov ukazne vrstice.
C
// C program to illustrate> // command line arguments> #include> int> main(> int> argc,> char> * argv[])> {> > printf> (> 'Program name is: %s'> , argv[0]);> > if> (argc == 1)> > printf> (> '
No Extra Command Line Argument Passed '> > 'Other Than Program Name'> );> > if> (argc>= 2) {> > printf> (> '
Number Of Arguments Passed: %d'> , argc);> > printf> (> '
----Following Are The Command Line '> > 'Arguments Passed----'> );> > for> (> int> i = 0; i printf('
argv[%d]: %s', i, argv[i]); } return 0; }> |
>
>
Izhod v različnih scenarijih:
1. Brez argumentov: Ko je zgornja koda prevedena in izvedena brez posredovanja nobenega argumenta, proizvede naslednji rezultat.
Terminalni vhod
$ ./a.out>
Izhod
Program Name Is: ./a.out No Extra Command Line Argument Passed Other Than Program Name>
2. Trije argumenti: Ko je zgornja koda prevedena in izvedena s tremi argumenti, ustvari naslednji rezultat.
Terminalni vhod
$ ./a.out First Second Third>
Izhod
Program Name Is: ./a.out Number Of Arguments Passed: 4 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First argv[2]: Second argv[3]: Third>
3. Posamezen argument: Ko je zgornja koda prevedena in izvedena z enim samim argumentom, ločenim s presledkom, vendar znotraj dvojnih narekovajev, ustvari naslednji rezultat.
vstavite v tipkovnico
Terminalni vhod
$ ./a.out 'First Second Third'>
Izhod
Program Name Is: ./a.out Number Of Arguments Passed: 2 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First Second Third>
4. En argument v narekovajih, ločen s presledkom: Ko je zgornja koda prevedena in izvedena z enim samim argumentom, ločenim s presledkom, vendar znotraj enojnih narekovajev, proizvede naslednji rezultat.
Terminalni vhod
$ ./a.out 'First Second Third'>
Izhod
Program Name Is: ./a.out Number Of Arguments Passed: 2 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First Second Third>