In vielen C++-IDE' s und Compilern, wenn es die Hauptfunktion für Sie erzeugt, sieht es wie folgt aus:
int main(int argc, char *argv[])
Wenn ich C++ ohne IDE, nur mit einem Kommandozeilen-Compiler programmiere, gebe ich ein:
int main()
ohne jegliche Parameter ein. Was bedeutet das, und ist es für mein Programm wichtig?
Mit argv
und argc
werden Befehlszeilenargumente an main()
in C und C++ übergeben.
argc" ist die Anzahl der Strings, auf die argv
zeigt. Dies wird (in der Praxis) 1 plus die Anzahl der Argumente sein, da praktisch alle Implementierungen den Namen des Programms dem Array voranstellen.
Die Variablen tragen die Namen argc
(Argumentenanzahl) und argv
(Argumentenvektor), aber sie können jeden gültigen Bezeichner erhalten: int main(int num_args, char** arg_strings)
ist ebenso gültig.
Sie können auch ganz weggelassen werden, was int main()
ergibt, wenn Sie nicht beabsichtigen, Befehlszeilenargumente zu verarbeiten.
Probieren Sie das folgende Programm aus:
#include <iostream>
int main(int argc, char** argv) {
std::cout << "Have " << argc << " arguments:" << std::endl;
for (int i = 0; i < argc; ++i) {
std::cout << argv[i] << std::endl;
}
}
Wenn Sie es mit ./test a1 b2 c3
ausführen, erhalten Sie
Have 4 arguments:
./test
a1
b2
c3
argc" ist die Anzahl der Argumente, die von der Befehlszeile an das Programm übergeben werden, und "argv" ist das Array der Argumente.
Sie können die Argumente in einer Schleife durchgehen, um die Anzahl der Argumente zu erfahren:
for(int i = 0; i < argc; i++)
{
// argv[i] is the argument at index i
}
Die Parameter von main
stellen die Befehlszeilenparameter dar, die dem Programm beim Start übergeben wurden. Der Parameter argc
steht für die Anzahl der Kommandozeilenargumente, und char *argv[]
ist ein Array von Strings (Zeichenzeigern), die die einzelnen Argumente auf der Kommandozeile darstellen.