C:n tärkein funktio on main()-funktio. Se määritellään useimmiten palautustyypillä int ja ilman parametreja.
int main() { ... }> Voimme antaa myös komentoriviargumentteja C:ssä. Komentoriviargumentit ovat arvoja, jotka annetaan ohjelman nimen jälkeen Käyttöjärjestelmien komentorivikuoressa. C-ohjelman main()-funktio käsittelee komentoriviargumentteja.
Komentoriviargumenttien välittämiseksi määrittelemme yleensä main():n kahdella argumentilla: ensimmäinen argumentti on komentoriviargumenttien määrä ja toinen on a luettelo komentoriviargumenteista.
taulukon pituus java
Syntaksi
int main(int argc, char *argv[]) { /* ... */ } or int main(int argc, char **argv) { /* ... */ }> Tässä,
- argc (ARGument Count) on kokonaislukumuuttuja, joka tallentaa käyttäjän lähettämien komentoriviargumenttien määrän, mukaan lukien ohjelman nimen. Joten jos välitämme arvon ohjelmalle, argc:n arvo olisi 2 (yksi argumentille ja yksi ohjelman nimelle)
- Argc:n arvon tulee olla ei-negatiivinen. argv (ARGument Vector) on joukko merkkiosoittimia, joissa luetellaan kaikki argumentit.
- Jos argc on suurempi kuin nolla, taulukon elementit argv[0] - argv[argc-1] sisältävät osoittimia merkkijonoihin.
- argv[0] on ohjelman nimi, jonka jälkeen kunnes argv[argc-1] jokainen elementti on komentoriviargumentteja.
Jotta ymmärrät paremmin, suorita tämä koodi Linux-koneellasi.
Esimerkki
Alla oleva esimerkki havainnollistaa komentoriviargumenttien tulostamista.
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; }> |
>
>
Lähtö
You have entered 4 arguments: ./main geeks for geeks>
terminaalin tuloa varten
$ g++ mainreturn.cpp -o main $ ./main geeks for geeks>
Huomautus: C-standardit sallivat myös muut alustasta riippuvat muodot; Esimerkiksi Unixissa (tosin ei POSIX.1:ssä) ja Microsoft Visual C++:ssa on kolmas argumentti, joka antaa ohjelman ympäristön, joka on muuten käytettävissä stdlib.h:n getenv:n kautta. Katso lisätietoja C-ohjelmasta ympäristömuuttujien tulostamiseksi.
C:n komentoriviargumenttien ominaisuudet
- Ne välitetään main()-funktiolle.
- Ne ovat parametreja/argumentteja, jotka syötetään ohjelmalle, kun se vedetään.
- Niitä käytetään ohjaamaan ohjelmia ulkopuolelta sen sijaan, että koodattaisiin nämä arvot koodin sisällä.
- argv[argc] on NULL-osoitin.
- argv[0] sisältää ohjelman nimen.
- argv[1] osoittaa ensimmäistä komentorivin argumenttia ja argv[argc-1] osoittaa viimeistä argumenttia.
Huomautus: Välität kaikki komentorivin argumentit välilyönnillä erotettuina, mutta jos argumentissa itsessään on välilyönti, voit välittää tällaiset argumentit laittamalla ne lainausmerkkien tai lainausmerkkien sisään.
Esimerkki
Alla oleva ohjelma näyttää komentoriviargumenttien toiminnan.
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; }> |
>
alkuluku java
>
Tulos eri skenaarioissa:
1. Ilman argumenttia: Kun yllä oleva koodi käännetään ja suoritetaan ilman argumentteja, se tuottaa seuraavan tulosteen.
Päätteen tulo
$ ./a.out>
Lähtö
Program Name Is: ./a.out No Extra Command Line Argument Passed Other Than Program Name>
2. Kolme argumenttia: Kun yllä oleva koodi käännetään ja suoritetaan kolmella argumentilla, se tuottaa seuraavan tulosteen.
Päätteen tulo
$ ./a.out First Second Third>
Lähtö
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. Yksi argumentti: Kun yllä oleva koodi käännetään ja suoritetaan yhdellä argumentilla välilyönnillä erotettuna mutta lainausmerkkien sisällä, se tuottaa seuraavan tulosteen.
Päätteen tulo
$ ./a.out 'First Second Third'>
Lähtö
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. Yksi argumentti lainausmerkeissä välilyönnillä erotettuna: Kun yllä oleva koodi käännetään ja suoritetaan yhdellä argumentilla, joka on erotettu välilyönnillä, mutta yksittäisten lainausmerkkien sisällä, se tuottaa seuraavan tulosteen.
Päätteen tulo
$ ./a.out 'First Second Third'>
Lähtö
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>