Notes in Hindi

What are Command Line Arguments in Hindi

/ BCA / Programming with C and CPP

Command Line Arguments in C Explained in Hindi

What are Command Line Arguments in Hindi

Command Line Arguments वो जानकारी होती है जो हम किसी C प्रोग्राम को रन करते समय command line के माध्यम से provide करते हैं। आमतौर पर जब हम कोई C प्रोग्राम बनाते हैं और उसे चलाते हैं, तो वह सिर्फ main() function से शुरू होता है। लेकिन अगर हम चाहते हैं कि यूज़र प्रोग्राम चलाते समय कुछ input भी दे, तो इसके लिए हमें command line arguments का उपयोग करना होता है।

Command line arguments के जरिए हम program को रन करते समय ही values पास कर सकते हैं। इससे हमें user से input लेने के लिए अलग से scanf() या gets() जैसी functions लगाने की जरूरत नहीं पड़ती। यह तरीका shell या terminal में ज्यादा इस्तेमाल होता है, खासकर Linux environment में।

उदाहरण के लिए समझें:

मान लीजिए हमने एक प्रोग्राम बनाया है जो दो नंबरों का योग करता है। अगर हम उसे इस तरह चलाते हैं:

./sum 10 20

तो यहाँ:

  • ./sum → यह प्रोग्राम का नाम है
  • 10 → पहला argument है
  • 20 → दूसरा argument है

इस तरह main() function इन values को command line से प्राप्त करता है।


Syntax of Command Line Arguments in C in Hindi

Command Line Arguments को use करने के लिए main() function की definition थोड़ी अलग होती है। सामान्यतः हम इसे इस प्रकार लिखते हैं:

int main(int argc, char *argv[])

या

int main(int argc, char **argv)

इसका अर्थ:

  • argc (Argument Count) → यह integer टाइप का होता है जो यह बताता है कि command line से कितने arguments दिए गए हैं। इसमें प्रोग्राम का नाम भी शामिल होता है।
  • argv (Argument Vector) → यह character pointers की array होती है जो actual arguments को store करती है।

ध्यान देने योग्य बातें:

  • argv[0] → हमेशा प्रोग्राम का नाम store करता है।
  • argv[1] से आगे → user द्वारा दिए गए arguments store होते हैं।

argc and argv in Command Line Arguments in Hindi

अब आइए थोड़ा detail में समझते हैं argc और argv के बारे में:

1. argc क्या है?

  • argc एक integer value होती है।
  • यह count करती है कि command line में कितने arguments दिए गए हैं।
  • इसमें argv[0] यानी प्रोग्राम का नाम भी गिना जाता है।
  • यदि हम कोई argument पास नहीं करते, तो भी argc की value 1 होगी (क्योंकि program name तो रहता ही है)।

2. argv क्या है?

  • argv एक array होती है char * टाइप की, यानी string pointers की।
  • यह उन सभी arguments को store करती है जो command line से पास किए जाते हैं।
  • हर element एक string होता है।
  • argv[0] में program का नाम होता है, argv[1] में पहला argument और ऐसे ही आगे।

argv को loop से कैसे process करें?

for(int i = 0; i < argc; i++) {
    printf("Argument %d: %s\n", i, argv[i]);
}

Example of Command Line Arguments Program in Hindi

नीचे एक basic प्रोग्राम दिया गया है जो दो numbers को add करता है और उन्हें command line से लेता है:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    if (argc != 3) {
        printf("Usage: %s num1 num2\n", argv[0]);
        return 1;
    }

    int num1 = atoi(argv[1]);
    int num2 = atoi(argv[2]);

    int sum = num1 + num2;
    printf("Sum: %d\n", sum);

    return 0;
}

Output:

यदि हम टर्मिनल में इस प्रोग्राम को ऐसे चलाते हैं:

./sum 25 35

तो इसका output होगा:

Sum: 60

इस प्रोग्राम में क्या हुआ?

  • User ने दो numbers दिए command line से।
  • हमने argc से verify किया कि exactly 3 arguments (including program name) हैं।
  • argv[1] और argv[2] को integer में convert किया atoi() function से।
  • फिर उनका योग करके output में दिखाया।

Command Line Arguments से संबंधित महत्वपूर्ण बातें:

  • Command line arguments हमेशा string के रूप में मिलते हैं, इसलिए उन्हें integer में बदलने के लिए atoi() या strtol() का उपयोग करना पड़ता है।
  • अगर arguments गलत या कम हों, तो user को proper instruction दिखाना चाहिए।
  • Command line arguments से प्रोग्राम flexible बनते हैं क्योंकि user input पहले से ही निर्धारित कर सकता है।
  • यह concept competitive programming और Linux utilities में बहुत उपयोगी होता है।

जब arguments dynamic हों तो क्या करें?

मान लीजिए आपको कितने भी arguments को sum करना है, चाहे user 2 दे या 10, आप ऐसा loop से कर सकते हैं:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    int sum = 0;

    for (int i = 1; i < argc; i++) {
        sum += atoi(argv[i]);
    }

    printf("Total Sum: %d\n", sum);
    return 0;
}

यह code जितने भी integer arguments दिए जाएंगे, उनका योग कर देगा।

FAQs

Command Line Arguments ऐसे input होते हैं जिन्हें हम program को execute करते समय terminal या command prompt से देते हैं। ये arguments main() function में argc और argv के माध्यम से program में पहुँचते हैं।
Command Line Arguments के लिए C में main() function को इस तरह लिखा जाता है: int main(int argc, char *argv[])। यहाँ argc argument की संख्या दर्शाता है और argv उन arguments को array के रूप में store करता है।
argc बताता है कि कुल कितने arguments दिए गए हैं (program name सहित), और argv एक array होती है जो उन सभी arguments को string के रूप में store करती है। argv[0] program का नाम होता है और argv[1] से आगे user द्वारा दिए गए input होते हैं।
Terminal या command prompt में program run करते समय arguments को space देकर pass किया जाता है। जैसे ./program 10 20 में 10 और 20 दो arguments हैं जिन्हें program argv[1] और argv[2] से access कर सकता है।
हाँ, C program में हम loop का उपयोग करके जितने भी arguments दिए गए हों, उन्हें dynamically handle कर सकते हैं। for(int i = 1; i < argc; i++) loop का उपयोग करके सभी arguments को process किया जा सकता है।

Please Give Us Feedback