সি পাইথন প্রোগ্রামিং জাভাস্ক্রিপ্ট পিএইচপি এসকিউএল জেকুয়েরি এইচটিএমএল সিএসএস বুটস্ট্রাপ এঙ্গুলার জেএস
লগইন
×

 সি টিউটোরিয়াল

সি প্রোগ্রামিং কি? সি এর ইতিহাস সি এর বৈশিষ্ট্যসমূহ কেন সি শিখবেন? সি ইন্সটলেশন প্রথম সি প্রোগ্রাম সি প্রোগ্রামের ফ্লো প্রোগ্রামিং শেখার সঠিক পদ্ধতি সি কীওয়ার্ড সি আইডেন্টিফায়ার সি ভ্যারিয়েবল সি কনস্ট্যান্ট সি ডাটা টাইপ সি মোডিফায়ার সি ইনপুট/আউটপুট সি অপারেটর সি কমেন্ট সি অপারেটর অগ্রাধিকার

সি কন্ট্রোল স্টেটমেন্ট

সি ইফ সি ইফ...ইলস সি ফর লুপ সি হোহাইল লুপ সি ডু...হোহাইল লুপ সি ব্রেক সি কন্টিনিউ সি সুইচ স্টেটমেন্ট সি goto স্টেটমেন্ট

 সি ফাংশন

সি ফাংশন পরিচিতি সি ইউজার কর্তৃক ফাংশন সি ফাংশন টাইপ সি রিকার্সন সি ভ্যারিয়েবল স্কোপ

 সি অ্যারে

সি অ্যারে পরিচিতি সি মালটি-ডাইমেনশনাল অ্যারে সি অ্যারে ফাংশন

 সি স্ট্রিং

সি স্ট্রিং সি স্ট্রিং ফাংশন

 সি পয়েন্টার

সি পয়েন্টার পরিচিত সি পয়েন্টার অ্যারে সি পয়েন্টার ফাংশন সি মেমোরি ম্যানেজমেন্ট

 সি ফাইল এবং স্ট্রাকচার

স্ট্রাকচার পরিচিত স্ট্রাকচার ও পয়েন্টার সি স্ট্রাকচার ও ফাংশন সি ইউনিয়ন ফাইল হ্যান্ডেলিং

 সি অতিরিক্ত টিউটোরিয়াল

সি লাইব্রেরী সি প্রিপ্রোসেসর এবং ম্যাক্রো সি ইনুমিরেশন সি এরর নিয়ন্ত্রণ সি টাইপ কাস্টিং সি বিট ফিল্ড সি ভ্যারিয়েবল আর্গুমেন্ট সি কমান্ড লাইন আর্গুমেন্ট

 

সি কমান্ড লাইন আর্গুমেন্ট - C Command Line Arguments


সি প্রোগ্রাম সম্পাদনের সময় আপনি কমান্ড লাইন থেকেও ভ্যালু অতিক্রম(pass) করাতে পারেন। এই ভ্যালুকে কমান্ড লাইন আর্গুমেন্ট(command line argument) বলা হয়। অনেক সময়ই ইহা প্রয়োজন হতে পারে, বিশেষকরে আপনি যখন প্রোগ্রামের ভিতরে এই ভ্যালু-সমূহকে হার্ড কোড(hard code) না করে বাহির থেকে কন্ট্রোল করতে চাইবেন।

main(int argc, char *argv[] ) ফাংশন ব্যবহার করে কমান্ড লাইন আর্গুমেন্টকে পরিচালনা করা হয়, যেখানে argc ফাংশনের মধ্য দিয়ে অতিক্রম হওয়া আর্গুমেন্টের সংখ্যাকে নির্দেশ করে এবং argv[] হলো পয়েন্টার অ্যারে যা প্রোগ্রামের মধ্য দিয়ে অতিক্রম হওয়া প্রত্যেক আর্গুমেন্টকে নির্দেশ করে।

#include <stdio.h>

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

   if( argc == 2 ) {
      printf("The argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 ) {
      printf("Too many arguments supplied.\n");
   }
   else {
      printf("One argument expected.\n");
   }
}

উপরের প্রোগ্রামটি যদি সিঙ্গেল আর্গুমেটসহ কম্পাইল এবং এক্সিকিউট করা হয় তাহলে ইহা নিচের ন্যায় ফলাফল দেখাবেঃ

$./a.out testing
The argument supplied is testing

উপরের প্রোগ্রামটি যদি দুটি আর্গুমেটসহ কম্পাইল এবং এক্সিকিউট করা হয় তাহলে ইহা নিচের ন্যায় ফলাফল দেখাবেঃ

$./a.out testing1 testing2
Too many arguments supplied.

উপরের প্রোগ্রামটি যদি কোনো আর্গুমেট ছাড়াই কম্পাইল এবং এক্সিকিউট করা হয় তাহলে ইহা নিচের ন্যায় ফলাফল দেখাবেঃ

$./a.out
One argument expected

নোটঃ আপনার জেনে রাখা উচিৎ যে, argv[0] দ্বারা প্রোগ্রাম তার নিজের নামকে নির্দেশ করে, argv[1] দ্বারা সরবরাহকৃত প্রথম কমান্ড লাইন আর্গুমেন্টকে নির্দেশ করে এবং *argv[n] দ্বারা সবশেষ আর্গুমেন্টকে নির্দেশ করে। যদি কোনো আর্গুমেন্ট সরবরাহ করা না হয় তাহলে argc হবে 1 এবং যদি একটি আর্গুমেন্ট অতিক্রম করানো হয় তাহলে argc হবে 2।

আর্গুমেন্ট-সমূহকে প্রোগ্রামের মধ্য দিয়ে অতিক্রম করানোর সময় স্পেসের মাধ্যমে পৃথক করা হয়। কিন্তু আর্গুএমেন্টের নিজের-ই যদি স্পেস থাকে তাহলে আর্গুমেন্ট-সমূহকে সিঙ্গেল('') অথবা ডাবল(" ") কোটেশনের মধ্যে রাখা হয়।


চলুন, উপরের প্রোগ্রামটি আমরা পুনরায় লিখি যার মাধ্যমে আমরা প্রোগ্রামের নাম প্রিন্ট করবো এবং কমান্ড লাইন আর্গুমেন্টকে সিঙ্গেল কোটেশনের মধ্যে রেখে অতিক্রম করাবোঃ

#include <stdio.h>

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

   printf("Program name %s\n", argv[0]);
 
   if( argc == 2 ) {
      printf("The argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 ) {
      printf("Too many arguments supplied.\n");
   }
   else {
      printf("One argument expected.\n");
   }
}

আরগুমেন্টকে সিঙ্গেল কোটেশনের মধ্যে রেখে এবং স্পেসের মাধ্যমে আলাদা করে উপরের প্রোগ্রামটি যদি কম্পাইল এবং এক্সিকিউট করা হয় তাহলে ইহা নিচের ন্যায় ফলাফল দেখাবেঃ

$./a.out "testing1 testing2"

Progranm name ./a.out
The argument supplied is testing1 testing2