C++:
Läsa in kommandoradsargument
How to:
#include <iostream>
int main(int argc, char* argv[]) {
std::cout << "Programmet har " << argc << " argument:" << std::endl;
for (int i = 0; i < argc; ++i) {
std::cout << "Argument " << i << ": " << argv[i] << std::endl;
}
return 0;
}
Kör programmet så här:
$ ./ditt_program Hej Världen
Programmet har 3 argument:
Argument 0: ./ditt_program
Argument 1: Hej
Argument 2: Världen
Djupdykning
I historiens gryning fanns ingen standard för inmatning av argument, men C-standardbiblioteket etablerade argc
och argv
som huvudsättet att få tillgång till kommandoradsargument. Alternativa metoder inkluderar användning av olika parsing-bibliotek som getopt
eller modernare läsningar med boost::program_options
. argc
står för “argument count” medan argv
är “argument vector” som är en array av strängpekare som pekar på varje argument. Det är viktigt att notera att argv[0]
är programmets namn, så räkningen av ‘riktiga’ argument börjar från argv[1]
.
Se även:
- C++ dokumentationen över
getenv
för att läsa in miljövariabler. - Boost.Program_options för ett mer avancerat argument parsingsbibliotek.
- cppreference om
std::getenv
för standard-kompatibla alternativ.