Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
🔵 Core C++  ·  Lesson 35

Command Line Arguments

Command line arguments क्या हैं?

ज़्यादातर beginner programs शुरू होने के बाद cin से input माँगते हैं। Command line arguments input देने का अलग तरीका है: program *launch* करते समय उसके नाम के बाद values लिख दी जाती हैं।

Terminal
./result Aman 78 85 91

यहाँ Aman, 78, 85 और 91 program के चलने से पहले ही उसे मिल जाते हैं। असली tools ऐसे ही काम करते हैं — g++ main.cpp -o main compiler को तीन arguments देता है। File names, options और बिना इंसानी input के चलने वाली scripts के लिए arguments बढ़िया हैं।

main() का signature

Arguments लेने के लिए main को दो parameters के साथ लिखें:

C++
int main(int argc, char* argv[])
// या, बिल्कुल यही:
int main(int argc, char** argv)
Parameterअर्थ
argcArgument count — कितनी strings दी गईं, program के नाम *सहित*
argvArgument vector — C-strings का array; argv[0] program का नाम
argv[argc]हमेशा null pointer (अंत का निशान)

./result Aman 78 85 91 के लिए: argc 5 है, argv[0] "./result" है, argv[1] "Aman" है, … argv[4] "91" है।

उदाहरण 1: हर argument print करना

C++
#include <iostream>

int main(int argc, char* argv[]) {
    std::cout << "argc = " << argc << "\n";
    for (int i = 0; i < argc; i++) {
        std::cout << "argv[" << i << "] = " << argv[i] << "\n";
    }
    return 0;
}
Terminal
g++ args.cpp -o args
./args hello "Class 12" 2026
argc = 4 argv[0] = ./args argv[1] = hello argv[2] = Class 12 argv[3] = 2026

Quotes space वाले शब्दों को एक argument बना देते हैं: "Class 12" एक argument है।

उदाहरण 2: arguments से numbers

Arguments हमेशा text होते हैं। उन्हें std::stoi (int) या std::stod (double) से बदलें, और पहले count check करें।

C++
#include <iostream>
#include <string>
#include <stdexcept>

int main(int argc, char* argv[]) {
    if (argc < 3) {
        std::cerr << "Usage: " << argv[0] << " <name> <mark1> [mark2 ...]\n";
        return 1;
    }

    std::string name = argv[1];
    int total = 0;
    try {
        for (int i = 2; i < argc; i++) {
            std::size_t used = 0;
            int mark = std::stoi(argv[i], &used);
            if (argv[i][used] != '\0')                  // "7x" is not a valid mark
                throw std::invalid_argument(argv[i]);
            total += mark;
        }
    } catch (const std::exception& e) {
        std::cerr << "All marks must be whole numbers.\n";
        return 1;
    }

    int subjects = argc - 2;
    std::cout << name << ": total " << total
              << ", average " << static_cast<double>(total) / subjects << "\n";
    return 0;
}
Terminal
./result Aman 78 85 91
Aman: total 254, average 84.6667

गलत input पर program 1 लौटाता है — non-zero exit code scripts को बताता है कि कुछ गड़बड़ हुई।

Arguments को vector में copy करना

सीधे char* के साथ काम करना असुविधाजनक है। उन्हें एक बार modern types में copy कर लें:

C++
#include <string>
#include <vector>

int main(int argc, char* argv[]) {
    std::vector<std::string> args(argv + 1, argv + argc);   // program का नाम छोड़ो
    for (const auto& a : args) {
        if (a == "--help") { /* help दिखाओ */ }
    }
    return 0;
}

अब == से तुलना, .size() और vector को functions में भेजना — सब आसान है।

IDE से arguments देना

ToolArguments कहाँ set करें
Terminal / Command Promptprogram.exe arg1 arg2 या ./program arg1 arg2
Code::BlocksProject → Set programs' arguments
Dev-C++Execute → Parameters
Visual StudioProject Properties → Debugging → Command Arguments
VS Codelaunch.json में "args": ["arg1", "arg2"]

Command line arguments कहाँ इस्तेमाल होते हैं

  • File name देना: ./marks-report students.csv
  • Options और flags: --verbose, -o output.txt
  • Automation: batch scripts और scheduled jobs जो बिना user input के चलते हैं
  • Competitive और practical exams में कभी-कभी test sizes इसी तरह पढ़े जाते हैं

आम गलतियाँ

  • argc check किए बिना argv[1] इस्तेमाल करना — argument न देने पर crash।
  • भूल जाना कि argv[0] program का नाम है, असली arguments index 1 से शुरू होते हैं।
  • C-strings की == से तुलना (argv[1] == "--help" pointers की तुलना करता है)। std::string(argv[1]) == "--help" या strcmp लें।
  • Arguments को बिना बदले numbers मान लेना।
  • Non-numeric text के exception को संभाले बिना std::stoi call करना — और यह भूलना कि stoi("7x") चुपचाप 7 लौटा देता है, जब तक आप यह check न करें कि कितने characters इस्तेमाल हुए।
🏋️ अभ्यास

calc program लिखें जो तीन arguments ले — एक number, एक operator (+ - x /) और दूसरा number — और नतीजा print करे, जैसे ./calc 12 x 5 से 60। Arguments की संख्या गलत हो तो usage message दिखाएँ और zero से भाग संभालें। (गुणा के लिए x लें क्योंकि ज़्यादातर shells * को फैला देते हैं।)

सारांश

  • Command line arguments वे values हैं जो program launch करते समय उसके नाम के बाद लिखी जाती हैं।
  • इन्हें int main(int argc, char* argv[]) से लें।
  • argc program के नाम सहित arguments गिनता है; argv[0] नाम है।
  • Arguments strings हैं — stoi/stod से बदलें और errors संभालें।
  • argv[i] पढ़ने से पहले हमेशा argc check करें।

संबंधित: functions, strings, file handling, exception handling।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

C++ में argc और argv क्या हैं?
argc (argument count) command-line arguments की संख्या है, program के नाम सहित। argv (argument vector) C-strings का array है: argv[0] program का नाम, argv[1] पहला असली argument, और इसी तरह argv[argc - 1] तक; argv[argc] null pointer होता है।
C++ में command line argument को integer में कैसे बदलें?
Arguments हमेशा text के रूप में आते हैं। int के लिए std::stoi(argv[1]), double के लिए std::stod, long के लिए std::stol (<string> से) लें। Call को try/catch में रखें, क्योंकि text number न हो तो stoi std::invalid_argument throw करता है।
Code::Blocks या VS Code में command line arguments कैसे दें?
Code::Blocks में Project → Set programs' arguments। Visual Studio में Project Properties → Debugging → Command Arguments। VS Code में launch.json में "args" array जोड़ें, या compiled program को terminal से चलाएँ: ./program arg1 arg2।
क्या argc कभी zero होता है?
सामान्य systems पर argc कम से कम 1 होता है क्योंकि argv[0] में program का नाम होता है। C++ standard तकनीकी रूप से argc 0 होने की अनुमति देता है, इसलिए मज़बूत programs argv[0] इस्तेमाल करने से पहले argc check करते हैं।
← Back to C++ Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicFile Handling in C++ आपकी प्रगति: 35 / 81 (43%) · Lesson 36 / 81 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें