suchen
  • Anmelden
  • Melden Sie sich an
Passwort-Reset erfolgreich

Verfolgen Sie die Projekte, die Sie interessieren, und erfahren Sie die neuesten Nachrichten über sie

Inhaltsverzeichnis
argc und argv verstehen
Grundlegende Zugangs- und Sicherheitskontrollen
Einfaches Parsingmuster für Argumente
Moderne Alternativen (C 17 und höher)
Heim Backend-Entwicklung C++ Wie lese ich Befehlszeilenargumente in C? (argc, argv-Tutorial)

Wie lese ich Befehlszeilenargumente in C? (argc, argv-Tutorial)

Dec 30, 2025 am 04:04 AM

Die Hauptfunktion in C empfängt Befehlszeilenparameter über argc und argv: argc ist die Anzahl der Parameter (mindestens 1, einschließlich des Programmnamens), argv ist ein Array von Zeigern, die auf jede Parameterzeichenfolge zeigen, argv[argc] ist ein Nullzeiger und argc muss vor dem Zugriff überprüft werden, um außerhalb der Grenzen zu verhindern.

Wie lese ich Befehlszeilenargumente in C? (argc, argv-Tutorial)

In C werden Befehlszeilenargumente über zwei Parameter an die main übergeben: argc (Argument Count) und argv (Argument Vector). argc ist eine Ganzzahl, die angibt, wie viele Argumente einschließlich des Programmnamens angegeben wurden. argv ist ein Array von Zeichenfolgen im C-Stil ( char* ), die auf jedes Argument verweisen.

argc und argv verstehen

argc ist immer mindestens 1 – weil argv[0] den Namen oder Pfad des Programms (wie aufgerufen) enthält. Jedes nachfolgende Element ( argv[1] , argv[2] usw.) entspricht den Argumenten, die nach dem Programmnamen eingegeben werden. Das Array endet mit einem Nullzeiger ( argv[argc] == nullptr ), sodass eine Schleife von 0 bis argc - 1 sicher ist.

  • ./myapp hello worldargc = 3 , argv[0] = "./myapp" , argv[1] = "hello" , argv[2] = "world"
  • ./myapp -v --input=file.txtargc = 4 ; Kein automatisches Parsen – Sie kümmern sich um die Aufteilung und Bedeutung

Grundlegende Zugangs- und Sicherheitskontrollen

Überprüfen Sie immer argc bevor Sie auf argv[i] zugreifen, um undefiniertes Verhalten zu vermeiden. Wenn Ihr Programm beispielsweise mindestens ein vom Benutzer bereitgestelltes Argument erwartet, überprüfen Sie argc > 1 .

  • Verwenden Sie if (argc \n"; return 1; }
  • Konvertieren Sie argv[i] zur einfacheren Manipulation in std::string : std::string arg(argv[1]);
  • Denken Sie daran: argv Elemente sind nullterminierte C-Strings – sie können sicher an C-Bibliotheksfunktionen wie strcmp oder atoi übergeben werden, bevorzugen jedoch nach Möglichkeit C-Alternativen ( std::stoi , std::string::compare ).

Einfaches Parsingmuster für Argumente

Für die grundlegende Flag-basierte Verwendung (z. B. -h , --help , -o output.txt ) durchlaufen Sie argv beginnend bei Index 1 und überprüfen jede Zeichenfolge:

  • Überprüfen Sie argv[i][0] == '-' , um Flags zu erkennen
  • Behandeln Sie kurze Optionen wie -v ( argv[i][1] == 'v' ) und lange Optionen wie --verbose mit std::string(argv[i]).compare("--verbose") == 0
  • Wenn ein Flag einen Wert erwartet (z. B. -o file.txt ), stellen Sie sicher, dass i 1 bevor Sie <code>argv[i 1] lesen.

Moderne Alternativen (C 17 und höher)

Während argc/argv Standard bleibt, sollten Sie aus Gründen der Übersichtlichkeit und Sicherheit erwägen, sie zu verpacken:

  • Erstellen Sie einen std::vector<:string></:string> von argv : std::vector<:string> args(argv, argv argc);</:string>
  • Verwenden Sie Bibliotheken wie Poco , argparse oder argh für robustes, deklaratives Parsen
  • In einfachen Fällen sind strukturierte Schleifen mit bereichsbasiertem for über einen Vektor besser lesbar als rohe Zeigerarithmetik

Das obige ist der detaillierte Inhalt vonWie lese ich Befehlszeilenargumente in C? (argc, argv-Tutorial). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an [email protected]

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

Stock Market GPT

Stock Market GPT

KI-gestützte Anlageforschung für intelligentere Entscheidungen

Beliebtes Werkzeug

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)