🔴 Advanced  ·  Lesson 44

Command Line Arguments

Command line arguments क्या हैं?

आम तौर पर program चलते समय scanf से input लेता है। Command line arguments अलग हैं — आप values program launch करते समय देते हैं, terminal में उसके नाम के ठीक बाद:

Terminal
./app hello 42

यहाँ hello और 42 program को दिए arguments हैं। इसी तरह gcc file.c जैसे tools file नाम पाते हैं। इन्हें पकड़ने को main दो parameters लेता है।

argc और argv

C Language
int main(int argc, char *argv[]) {
    // argc = kitne arguments (program naam sahit)
    // argv = argument strings ka array
}
नाममतलब
argcArgument count — कितने, program नाम सहित
argv[0]Program का अपना नाम
argv[1]...आपकी टाइप की values

./app hello 42 के लिए, argc 3 है, argv[0] "./app", argv[1] "hello", और argv[2] "42"

C Language
#include <stdio.h>
int main(int argc, char *argv[]) {
    printf("Aapne %d arguments diye.\n", argc - 1);
    for (int i = 1; i < argc; i++)   // 1 se shuru, program naam chhodein
        printf("argv[%d] = %s\n", i, argv[i]);
    return 0;
}
Run: ./app hello 42
Output:
Aapne 2 arguments diye.
argv[1] = hello
argv[2] = 42

Loop 1 से शुरू होता है क्योंकि argv[0] बस program का नाम है।

Arguments को numbers बनाना

हर argument एक string है, "42" भी। इसे number के रूप में इस्तेमाल करने को <stdlib.h> के atoi (int में) या atof (double में) से बदलें।

C Language
#include <stdlib.h>
int n = atoi(argv[1]);   // "42" -> 42

एक sum program

Command line पर दिए सभी numbers जोड़ें।

C Language
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
    if (argc < 2) {
        printf("Usage: ./app num1 num2 ...\n");
        return 1;
    }
    int sum = 0;
    for (int i = 1; i < argc; i++)
        sum += atoi(argv[i]);
    printf("Sum = %d\n", sum);
    return 0;
}
Run: ./app 10 20 30
Output:
Sum = 60
💡 पहले argc जाँचें

argv[1] छूने से पहले हमेशा पुष्टि करें कि argc काफ़ी बड़ा है, वरना गायब argument array के पार पढ़ लेगा।

आम गलतियाँ

  • Loop को 0 से शुरू करके गलती से program नाम शामिल करना।
  • Argument को atoi/atof से बदले बिना number के रूप में इस्तेमाल करना।
  • argc जाँचे बिना argv[1] पढ़ना — गायब होने पर crash
  • यह मानना कि arguments validated हैं — user कुछ भी टाइप कर सकता है।
🏋️ अभ्यास

एक program लिखें जो command line पर दो numbers ले और उनका गुणनफल print करे। दो से कम numbers दिए जाने की स्थिति को usage message print करके संभालें।

सारांश

  • Command line arguments program launch करते समय दी values हैं।
  • main(int argc, char *argv[]) इन्हें पाता है।
  • argc गिनता है; argv[0] program नाम, असली values argv[1] से।
  • Arguments strings हैं — numbers के लिए atoi या atof से बदलें।
  • Argument पढ़ने से पहले हमेशा argc जाँचें।

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

C में command line arguments क्या हैं?
Command line arguments वे values हैं जो आप program को terminal से चलाते समय उसके नाम के बाद टाइप करते हैं, जैसे ./app hello 42। C इन्हें main के दो parameters — argc और argv — के ज़रिए program में भेजता है, ताकि program उन्हें पढ़ और इस्तेमाल कर सके।
C में argc और argv क्या हैं?
argc (argument count) एक integer है जो बताता है कि कितने arguments भेजे गए, program नाम सहित। argv (argument vector) strings का array है जो असली arguments रखता है, जहाँ argv[0] program नाम है और argv[1] से आगे वे values जो आपने टाइप कीं।
argv[0] में क्या होता है?
argv[0] program को चलाने के लिए इस्तेमाल किया नाम (या path) रखता है। असली user-दिए arguments argv[1] से शुरू होते हैं, इसीलिए arguments process करने वाले loops आमतौर पर index 1 से शुरू होते हैं।
Command line argument को number में कैसे बदलते हैं?
Command line arguments हमेशा strings के रूप में आते हैं, तो आप उन्हें <stdlib.h> के functions से बदलते हैं — int के लिए atoi या floating-point के लिए atof। जैसे atoi(argv[1]) पहले argument को integer बनाता है।
argv strings का array क्यों है, numbers का नहीं?
क्योंकि terminal सब कुछ text के रूप में भेजता है। भले आप 42 टाइप करें, वह characters "4" और "2" के रूप में आता है, number 42 नहीं। इसीलिए numbers चाहिए होने पर आपको arguments खुद बदलने पड़ते हैं।
← 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 दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.