🎯 এই পর্বে যা জানবে:
- কমান্ড লাইন আর্গুমেন্ট কী
- main() ফাংশনে argc ও argv এর ভূমিকা
- কীভাবে আর্গুমেন্ট পাস করা হয়
- বাস্তব উদাহরণসহ প্রোগ্রাম
- কেন কমান্ড লাইন আর্গুমেন্ট গুরুত্বপূর্ণ
🧠 কমান্ড লাইন আর্গুমেন্ট কী?
সাধারণত আমরা প্রোগ্রাম চালানোর পর scanf() দিয়ে ইনপুট নিই।
কিন্তু কিছু ক্ষেত্রে ইনপুট আগেই প্রোগ্রাম চালানোর সময় দিতে হয় — সেটাই হলো কমান্ড লাইন আর্গুমেন্ট (Command Line Argument)।
এগুলো প্রোগ্রামের main() ফাংশনে সরাসরি পাস হয়।
⚙️ কমান্ড লাইন আর্গুমেন্টের গঠন
C প্রোগ্রামে main() ফাংশনের দুটি বিশেষ প্যারামিটার থাকে —
int main(int argc, char *argv[])| প্যারামিটার | কাজ |
|---|---|
argc | Argument Count — মোট কতটি আর্গুমেন্ট পাস হয়েছে তা গুনে |
argv | Argument Vector — আর্গুমেন্টগুলো একটি স্ট্রিং অ্যারের মাধ্যমে সংরক্ষণ করে |
💡 উদাহরণ ১: আর্গুমেন্ট প্রদর্শন
#include <stdio.h>
int main(int argc, char *argv[]) {
int i;
printf("মোট আর্গুমেন্ট সংখ্যা: %d\n", argc);
for(i = 0; i < argc; i++) {
printf("Argument %d: %s\n", i, argv[i]);
}
return 0;
}প্রোগ্রাম চালানো:
> ./a.out hello worldআউটপুট:
মোট আর্গুমেন্ট সংখ্যা: 3
Argument 0: ./a.out
Argument 1: hello
Argument 2: world💡 উদাহরণ ২: দুটি সংখ্যার যোগফল নেওয়া
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
if(argc != 3) {
printf("দয়া করে দুটি সংখ্যা দিন!\n");
return 1;
}
int num1 = atoi(argv[1]);
int num2 = atoi(argv[2]);
int sum = num1 + num2;
printf("যোগফল: %d\n", sum);
return 0;
}চালানো হবে এভাবে:
> ./a.out 10 20আউটপুট:
যোগফল: 30🔍 atoi() ফাংশন
atoi() (ASCII to Integer) ব্যবহার করে স্ট্রিংকে ইন্টিজারে রূপান্তর করা হয়।
কারণ argv তে আর্গুমেন্ট সবসময় স্ট্রিং আকারে থাকে।
💪 কমান্ড লাইন আর্গুমেন্টের সুবিধা
✅ ইনপুট ফাইল বা আউটপুট ফাইল নির্দিষ্ট করা যায়
✅ প্রোগ্রামকে আরও স্বয়ংক্রিয় (automated) করা যায়
✅ বিভিন্ন স্ক্রিপ্ট বা ব্যাচ প্রসেসিং এ ব্যবহারযোগ্য
✅ কোড পরিবর্তন না করেই ভিন্ন ভিন্ন ইনপুটে রান করা যায়
🚀 সংক্ষেপে
- কমান্ড লাইন আর্গুমেন্ট main() ফাংশনে পাস হয়
argcআর্গুমেন্ট সংখ্যা গুনেargvআর্গুমেন্টগুলো স্ট্রিং আকারে রাখেatoi()দিয়ে স্ট্রিংকে সংখ্যায় রূপান্তর করা যায়



