C ++ এ iostream ক্লাসের সাথে কনসোল পরিচালনা করা

Managing Console With Iostream Classes C



কম্পিউটিংয়ে, কনসোল হল কম্পিউটার কীবোর্ড এবং কম্পিউটার মনিটর। অতীতে, আউটপুট সরাসরি মনিটরের পর্দায় পাঠানো হত এবং মনিটরে প্রদর্শিত উইন্ডোতে নয়। সাধারণ কম্পিউটার ব্যবহারকারীর জন্য, অ্যাপ্লিকেশনগুলি আজ স্পষ্টভাবে মনিটর ব্যবহার করে না। এই অ্যাপ্লিকেশনগুলি মনিটরে প্রদর্শিত উইন্ডো ব্যবহার করে। যাইহোক, কম্পিউটার প্রোগ্রামারকে এখনও মনিটর স্ক্রিন ব্যবহার করতে হবে। যদিও প্রোগ্রামারের এখনও মনিটর স্ক্রিন ব্যবহার করা দরকার, অপারেটিং সিস্টেম তাকে তা করতে দেয় না। অপারেটিং সিস্টেম একটি উইন্ডো প্রদান করে যা মনিটরের পর্দা অনুকরণ করে। উইন্ডোজ অপারেটিং সিস্টেমে এই উইন্ডোকে বলা হয় কমান্ড প্রম্পট। লিনাক্স অপারেটিং সিস্টেম এবং এর ভেরিয়েন্টে এই উইন্ডোটিকে টার্মিনাল বলা হয়।

এটা আশা করা যায় যে পাঠক ইতিমধ্যেই জানেন কিভাবে কমান্ড প্রম্পট বা টার্মিনাল ব্যবহার করতে হয়। এই প্রবন্ধটি ব্যাখ্যা করে কিভাবে কীবোর্ড থেকে অক্ষর এবং স্ট্রিং পড়তে হয় এবং টার্মিনালে (বা কমান্ড প্রম্পট) অক্ষর এবং স্ট্রিং পাঠাতে হয়। প্রতিটি C ++ প্রোগ্রামারকে এই নিবন্ধে জানতে হবে।







কীবোর্ড থেকে ইনপুট এবং টার্মিনালে আউটপুট পেতে, প্রোগ্রামটি দিয়ে শুরু করতে হবে:



#অন্তর্ভুক্ত
ব্যবহার নামস্থানঘন্টার;

নিবন্ধ বিষয়বস্তু

স্ট্যান্ডার্ড iostream এর সংকীর্ণ প্রবাহ বস্তু

Iostream ক্লাস, স্ট্যান্ডার্ড অবজেক্টস, cout, cin, cerr, এবং clog, তাত্ক্ষণিকভাবে এবং ইতিমধ্যে স্ট্যান্ডার্ড লাইব্রেরিতে রয়েছে। প্রোগ্রামার তাদের আবার তাৎক্ষণিকভাবে ব্যবহার না করে তাদের ব্যবহার করে।



খরচ

প্রধান () ফাংশনে নিম্নলিখিত বিবৃতি পাঠ্য পাঠায়, এটি আউটপুট। টার্মিনালে:





খরচ << 'এটি আউটপুট।';

cout হল স্ট্যান্ডার্ড লাইব্রেরির একটি আউটপুট iostream অবজেক্ট, যা ইতিমধ্যেই ইনস্ট্যান্টেটেড।<< is the insertion operator, which sent the bytes, This is output. to the output stream object, cout. When the statement is executed, the text appears on the screen.

উপরের বিবৃতির সাথে, পুনরায় প্রদর্শিত কমান্ড প্রম্পটটি আউটপুট ফ্রেজের ডানদিকে প্রদর্শিত হবে। এটি পরবর্তী লাইনে যায় না। নিম্নোক্ত বিবৃতির শেষে endl পর্দার দ্বারা যা মুদ্রিত হবে তা পরবর্তী লাইনে বাধ্য করবে:



খরচ << 'এটি আউটপুট।' <<endl;

endl একটি পূর্বনির্ধারিত পরিবর্তনশীল। পর্দার বিষয়বস্তুও পরবর্তী লাইনে বাধ্য করা যেতে পারে:

খরচ << 'এটি আউটপুট।' << 'n';

' N' ব্যবহারের সাথে, পাঠ্যের সমস্ত লাইন এখনও অবিলম্বে পর্দায় উপস্থিত নাও হতে পারে। endl স্ক্রিনে পাঠ্যের সম্পূর্ণ লাইন ফ্লাশ করে।

দ্রষ্টব্য: cout- এ পাঠানো একটি স্ট্রিং দ্বিগুণ উদ্ধৃতিতে থাকে, যখন পাঠানো একটি অক্ষর একক উদ্ধৃতিতে থাকে। একটি স্ট্রিং এবং অক্ষরের একটি সিরিজ একটি বিবৃতিতে পাঠানো যেতে পারে, প্রতিটি পূর্বে<< . All that will appear in one line at the output if ‘ ’ is not in the series.

জিন

cin হল স্ট্যান্ডার্ড আইওস্ট্রিম ইনপুট অবজেক্ট, যা ইতিমধ্যেই ইনস্ট্যান্টেড এবং স্ট্যান্ডার্ড লাইব্রেরিতে পাওয়া যায়। প্রধান () ফাংশনে নিম্নলিখিত কোড বিভাগটি বিবেচনা করুন:

গৃহস্থালিtxt[পঞ্চাশ];
খরচ << 'একটি শব্দ লিখুন এবং এন্টার টিপুন:' txt;
খরচ <<txt<<endl;

প্রথম বিবৃতি 50 অক্ষরের একটি ফাঁকা অ্যারে ঘোষণা করে। দ্বিতীয় বিবৃতিটি ব্যবহারকারীকে পরবর্তী স্ক্রিন লাইনে একটি শব্দ টাইপ করতে এবং এন্টার কী টিপতে নির্দেশ দেয়। 'Endl' এর ব্যবহার লক্ষ্য করুন যা ব্যবহারকারীকে পর্দার পরবর্তী লাইনে পাঠ্য প্রবেশ করতে বাধ্য করে। ব্যবহারকারী যেমন পাঠ্য টাইপ করে, প্রবেশ করা পাঠ্যটি পর্দায় প্রতিধ্বনিত হয় যখন এটি সিন বস্তুর মধ্যে যায়। এন্টার চাপার পর, কোড সেগমেন্টের তৃতীয় স্টেটমেন্টটি কার্যকর করা হয়। এই তৃতীয় বিবৃতিটি লিখিত পাঠ্যটি ভেরিয়েবলে পাঠায়, txt। এই ক্ষেত্রে লিখিত লেখা 50 অক্ষরের বেশি হওয়া উচিত নয়। নিষ্কাশন অপারেটরের ব্যবহার লক্ষ্য করুন, >>। শেষ বিবৃতি পর্দায় প্রবেশ করা পাঠ্য প্রদর্শন করে।

cin স্থান থেকে আলাদা করে কীবোর্ড থেকে একাধিক শব্দ নিতে পারে। এই শব্দগুলি বিভিন্ন ভেরিয়েবলে বের করতে হবে। নিম্নলিখিত কোড সেগমেন্ট এটি ব্যাখ্যা করে:

গৃহস্থালিtxt[বিশ];
intএটা;
ভাসাফুট;
খরচ << '3 টি মান লিখুন এবং এন্টার টিপুন:' txt>>এটা>>ফুট;
খরচ <<txt<< '' <<এটা<< '' <<ফুট<<endl;

বিবৃতি লক্ষ্য করুন:

জিন >>txt>>এটা>>ফুট;

প্রথম শব্দটি txt, তার পরের এবং শেষ থেকে ফুট পর্যন্ত বের করা হয়। যদি ইনপুট ছিল,

এক25 3.6

তারপর কোড সেগমেন্ট দ্বারা আউটপুট হবে,

এক25 3.6

সের

নিম্নলিখিত প্রোগ্রামে একটি ত্রুটি রয়েছে:

#অন্তর্ভুক্ত
ব্যবহার নামস্থানঘন্টার;

intপ্রধান()
{
আমার মধ্যে;

প্রত্যাবর্তন 0;
}

প্রধান () প্রথম বিবৃতি সঠিক নয়। যদি কোড থাকা ফাইলের নাম temp.cc হয় এবং ফলস্বরূপ এক্সিকিউটেবল ফাইলকে টেম্প বলা হয়, তাহলে নিচের g ++ কমান্ডটি কম্পাইলার ত্রুটি বার্তা পাঠাবে, error.txt:

++ -o অস্থায়ী তাপমাত্রা।ডিসি 2>ত্রুটি.txt

যদি ফাইল error.txt না থাকে, তাহলে এটি তৈরি করা হবে। G ++ কমান্ডের অংশ 2> error.txt লক্ষ্য করুন।

স্ক্রিন হল স্ট্যান্ডার্ড আউটপুট গন্তব্য, এবং এটি স্ট্যান্ডার্ড ত্রুটির গন্তব্যও। যদি 2> error.txt g ++ কমান্ড থেকে বাদ দেওয়া হয়, তাহলে কম্পাইলার ত্রুটি বার্তাটি স্ট্যান্ডার্ড ত্রুটি গন্তব্যে পাঠানো হবে, যা এখনও স্ক্রিন (মনিটর)।

প্রবাহ বস্তু যা স্ট্যান্ডার্ড আউটপুট গন্তব্য প্রতিনিধিত্ব করে cout হয়। প্রবাহ বস্তু যা স্ট্যান্ডার্ড ত্রুটি গন্তব্য প্রতিনিধিত্ব করে cerr। একটি প্রোগ্রাম রানটাইম ত্রুটি স্ক্রিনে নিম্নরূপ পাঠানো যেতে পারে:

সের << 'ত্রুটি বার্তা!' << 'n';

আটকে রাখা

একটি অ্যাপ্লিকেশন বিভিন্ন সময়ে বিভিন্ন ইনপুট নেয়। সমস্ত ইনপুট স্ক্রিনে পুনরায় প্রদর্শিত হতে পারে। সমস্ত ইনপুট একটি ফাইলে সংরক্ষণ করা যেতে পারে। এই লগিং হয়। স্ট্যান্ডার্ড লগিং গন্তব্য হল পর্দা। স্ট্যান্ডার্ড লগিং স্ট্রিম অবজেক্ট একটি ক্লগ। নিম্নলিখিত কোডটি স্ক্রিনে ইনপুট পাঠ্য পুনরায় প্রদর্শন করবে:

গৃহস্থালিtxt[পঞ্চাশ];
খরচ<<'টেক্সট লিখুন এবং এন্টার টিপুন:'txt;
আটকে রাখা<<txt<<endl;

যদি ইনপুট পাঠ্য 'input_text' হয়, তাহলে clog স্ক্রিনে 'input_text' পুনরায় প্রদর্শন করবে।

অনুশীলনে, লগিং সাধারণত একটি ফাইলে পুনirectনির্দেশিত হয়। নিম্নলিখিত প্রোগ্রামটি এটিকে ব্যাখ্যা করে:

#অন্তর্ভুক্ত
ব্যবহার নামস্থানঘন্টার;

intপ্রধান()
{
freopen( 'log.txt','ভিতরে',stdout);

খরচ << 'ইনপুট_টেক্সট' <<endl;
}

ফাংশন, freopen (), এবং এর আর্গুমেন্ট ব্যবহার লক্ষ্য করুন। এর প্রথম যুক্তি হল লগ ফাইলের নাম। যদি ফাইলটি বিদ্যমান না থাকে তবে এটি তৈরি করা হবে। এর দ্বিতীয় যুক্তি হল 'লেখার' জন্য 'w'। এর তৃতীয় যুক্তি হল স্ট্যান্ডার্ড-আউটপুটের জন্য stdout। প্রধান () ফাংশনের দ্বিতীয় বিবৃতিটি ফাইলটিতে লগিং পাঠ্য পাঠানোর জন্য cout ব্যবহার করে। দ্রষ্টব্য: এই প্রোগ্রামে প্রকৃত ইনপুট কোড দেখানো হয়নি।

কীবোর্ড থেকে অক্ষর এবং স্ট্রিং প্রাপ্তি

যখন ব্যবহারকারী ইনপুট টাইপ করছেন, অক্ষরগুলি ইনপুট স্ট্রিম বাফারে পাঠানো হয় এবং স্ক্রিনে প্রদর্শিত হয়। যখন ব্যবহারকারী এন্টার কী টিপেন, তখন সমস্ত অক্ষর বাফারে থাকে; এছাড়াও, কার্সারটি স্ক্রিনে নীচের পরবর্তী লাইনের শুরুতে যায়। ইনপুট পড়ার স্টেটমেন্টের পর প্রোগ্রাম পরবর্তী প্রোগ্রাম স্টেটমেন্টে অব্যাহত থাকে।

Cin অবজেক্টের পদ্ধতি আছে, যা এই বিভাগটি সম্পর্কিত।

প্রথম অক্ষর পড়া

পান (char_type & c):
নিম্নলিখিত কোড সেগমেন্ট দেখায় কিভাবে ইনপুট স্ট্রিম বাফার থেকে প্রথম অক্ষর পড়তে হয়:

গৃহস্থালিসিএইচ;
খরচ << 'ইনপুট পাঠ্য:' <<endl;
জিনপাওয়া(সিএইচ);
খরচ <<সিএইচ<<endl;

প্রথম বিবৃতি অ্যাসাইনমেন্ট ছাড়াই একটি চরিত্র ঘোষণা করে। দ্বিতীয় বিবৃতি ব্যবহারকারীকে একটি অক্ষর ইনপুট করতে বলে। যখন ব্যবহারকারী অক্ষরে টাইপ করে এবং এন্টার কী টিপেন, তৃতীয় বিবৃতিটি ইনপুট স্ট্রিম বাফার থেকে অক্ষরটি ভেরিয়েবলে কপি করে, ch।

এমনকি যদি ব্যবহারকারী একাধিক অক্ষর টাইপ করে, প্রথম অক্ষর কোড বিভাগ দ্বারা নেওয়া হবে।

পাওয়া():
get () যুক্তি ছাড়াই, দশমিক ASCII কোড প্রদান করে। নিম্নলিখিত কোড বিভাগ বিবেচনা করুন:

খরচ << 'ইনপুট পাঠ্য:' <<endl;
খরচ << জিনপাওয়া() <<endl;

যদি ইনপুট 'asdfg' হয়, তাহলে 97 প্রদান করা হবে, যা 'a' এর দশমিক ASCII কোড।

পান (char_type* s, স্ট্রিমসাইজ এন)

ব্যবহারকারী একটি ফ্রেজ ইনপুট করার পরে এবং এন্টার কী টিপলে, প্রথম থেকে শুরু করে বেশ কয়েকটি অক্ষর সিন স্ট্রিম বাফার থেকে বের করা যায়। নিম্নলিখিত কোড ব্যবহার করা যেতে পারে:

গৃহস্থালিপৃ[10];
খরচ << 'ইনপুট পাঠ্য:' <<endl;
জিনপাওয়া(str,10);
খরচ <<পৃ<<endl;

যদি ইনপুট 'গ্রেট পিপল' হয়, তাহলে আউটপুট 'গ্রেট পিও' হবে, নয়টি অক্ষরের এবং 10 টি নয়। সুতরাং, str এ 9 টি অক্ষর থাকতে হলে, এর স্টোরেজ সাইজ কমপক্ষে 10 হতে হবে, এবং get () আর্গুমেন্ট 11 হতে হবে। যদি পুরো ইনপুট লাইনটি পছন্দ করা হয়, তাহলে স্ট্রিং স্টোরেজ নম্বরটি কমপক্ষে সংখ্যা হতে হবে টাইপ করা অক্ষরের, প্লাস 1. সুতরাং, যদি পুরো লাইনের জন্য 12 টি অক্ষর টাইপ করা হয়, তাহলে সংখ্যাটি স্ট্রিং (str) স্টোরেজ সাইজের জন্য 13 এবং get () আর্গুমেন্টের জন্য 13 হওয়া উচিত। লক্ষ্য করুন যে একটি স্থান একটি অক্ষর হিসাবে গণনা করা হয়।

পান (char_type* s, streamsize n, char_type delim)
একটি নির্দিষ্ট অক্ষরের প্রথম ঘটনা দ্বারা, অথবা সাব-স্ট্রিং এর স্ট্রিমসাইজ দ্বারা ডানদিকে সীমাবদ্ধ একটি উপ-স্ট্রিং বের করা সম্ভব, যা আগে আসে। যদি নিম্নলিখিত কোডে ইনপুট পাঠ্য মহান মানুষ হয়, তাহলে মহান নিষ্কাশন করা হবে:

গৃহস্থালিপৃ[30];
খরচ << 'ইনপুট পাঠ্য:' <<endl;
জিনপাওয়া(str,6,'অথবা');
খরচ <<পৃ<<endl;

শুরু থেকে ষষ্ঠ অবস্থান হল স্পেস ক্যারেক্টার, এবং এটি এক্সট্রাক্টেড সাবস্ট্রিংকে একচেটিয়াভাবে সীমাবদ্ধ করে। একমাত্র অক্ষরের আগে ষষ্ঠ স্থানটি আসে, 'ও'। লক্ষ্য করুন যে str এর স্টোরেজ সাইজ যতটা সম্ভব উচ্চ হতে পারে।

যদি নিম্নলিখিত কোডে ইনপুট পাঠ্য মহান মানুষ হয়, তাহলে gr নিষ্কাশন করা হবে:

গৃহস্থালিপৃ[30];
খরচ << 'ইনপুট পাঠ্য:' <<endl;
জিনপাওয়া(str,10,'এবং');
খরচ <<পৃ<<endl;

'ই' এর প্রথম ঘটনা, দশম অবস্থানের আগে আসে।

একটি লাইনের সমস্ত চরিত্র পাওয়া

এন্টার কী টিপার পরে, লাইনে টাইপ করা সমস্ত অক্ষর নিম্নলিখিত কোডে দেখানো হয়েছে:

খরচ << 'ইনপুট পাঠ্য:' <<endl;
যখন () {
গৃহস্থালিসিএইচ= (গৃহস্থালি)জিনপাওয়া();
খরচ <<সিএইচ;
যদি (সিএইচ== 'n')
বিরতি;
}

(চার) দিয়ে কাস্টিং, প্রতিটি দশমিক সংখ্যাকে সংশ্লিষ্ট ASCII অক্ষরে রূপান্তর করে।

উঁকি ()

Get () মেম্বার ফাংশন শুধুমাত্র পরবর্তী অক্ষর পড়বে না; তারা এটি স্ট্রিম বাফার থেকে সরিয়ে দেয়। যাইহোক, উঁকি () সদস্য ফাংশন সহজ বাফার থেকে অপসারণ ছাড়া পরবর্তী অক্ষর (প্রথম থেকে শুরু) পড়ে। নিচের কোডে, প্রতিটি অক্ষর get () ফাংশন দ্বারা অপসারণের আগে প্রথমে peek () ফাংশনের সাথে পড়া হয়। ব্যবহারকারী এন্টার কী চাপার পরে যা ঘটে:

খরচ << 'ইনপুট পাঠ্য:' <<endl;
যখন () {
গৃহস্থালিসিএইচ= (গৃহস্থালি)জিনউঁকি();
খরচ <<সিএইচ;
জিনপাওয়া();
যদি (সিএইচ== 'n')
বিরতি;
}

যদি পরবর্তী অক্ষরগুলি get () দ্বারা সরানো না হয়, উঁকি () শুধুমাত্র প্রথম অক্ষর পড়বে, এবং লুপ অনির্দিষ্টকালের জন্য পুনরাবৃত্তি করবে।

এন্টার চাপার আগে অক্ষর প্রদর্শন এবং মুছে ফেলা

লক্ষ্য করুন যে cin অবজেক্টের সাথে, এন্টার কী টিপতে হবে আগে কোন অ্যাকশন হবে। ঠিক আছে, এন্টার কী টিপার আগে টাইপ করা এবং মুছে ফেলার সময় অক্ষরগুলি প্রদর্শন করা সম্ভব। যাইহোক, এর অর্থ অপারেটিং সিস্টেমের সাথে ইন্টারফেস করা। অপারেটিং সিস্টেম আলাদা। সুতরাং এর মানে হল বিভিন্ন অপারেটিং সিস্টেমের জন্য আলাদা কোডিং। তাই এই টপিকটি সম্পূর্ণ ভিন্ন টিউটোরিয়ালের দাবী রাখে - পরে দেখুন।

মনিটরে অক্ষর এবং স্ট্রিং পাঠানো

Cout অবজেক্ট একটি আউটপুট স্ট্রিম বস্তু, যা ইতিমধ্যেই তাত্ক্ষণিক এবং C ++ স্ট্যান্ডার্ড লাইব্রেরিতে উপস্থিত। cout মনিটরে অক্ষর এবং স্ট্রিং পাঠাতে ব্যবহৃত প্রধান বস্তু। এটি সন্নিবেশ অপারেটরের সাথে সম্পন্ন করা হয়,<< . With the cin object, the text is obtained line-by-line. With the cout object, the text is added onto the same line until ‘ ’ or endl is encountered.

স্কেলারগুলির ফলে এক্সপ্রেশনগুলি সন্নিবেশ অপারেটরের পক্ষে যুক্তি হতে পারে। অপারেটর স্কেলারকে টেক্সটে রূপান্তর করে এবং টেক্সটকে cout অবজেক্ট স্ট্রীমে রাখে। যখন cout বস্তুর পাঠ্য পাঠানো হয়, এটি সাধারণত পর্দায় (মনিটর) প্রদর্শিত হয়। যাইহোক, মাঝে মাঝে, এটি অবিলম্বে প্রদর্শিত নাও হতে পারে। স্ক্রিনে জোরপূর্বক পাঠ্য পাঠানোর জন্য, বিশেষ মান সন্নিবেশ করান এর ফলে পাঠ্যটি স্ক্রিনে ফ্লাশ হয়ে যাবে এবং একটি নতুন লাইন যুক্ত হবে। দ্রষ্টব্য: ' n' কেবল একটি নতুন লাইন যোগ করে কিন্তু স্ক্রিনে টেক্সট ফ্লাশ করে না।

নিচের প্রোগ্রামটি দেখায় কিভাবে int, float এবং সাধারণ টেক্সটের মানগুলি স্ক্রিনে প্রিন্ট করতে হয়:

#অন্তর্ভুক্ত
ব্যবহার নামস্থানঘন্টার;

intপ্রধান()
{
intএটা= 5;
ভাসাফুট= 63.5;
খরচ << 'দ্য ' <<এটা<< 'আইটেমের দাম $' <<ফুট<< ' আমাদের.' <<endl;

প্রত্যাবর্তন 0;
}

আউটপুট হল:

দ্য5আইটেমের দাম $63.5আমাদের.

নিম্নোক্ত প্রোগ্রামটি দেখায় কিভাবে একটি শ্রেণী থেকে তাত্ক্ষণিক বস্তুর স্ট্রিং মুদ্রিত হয়:

#অন্তর্ভুক্ত
ব্যবহার নামস্থানঘন্টার;

কাঠামোসেন্ট{
গৃহস্থালিপৃ[এগারো] = 'কিছু শব্দ';
}obj;

intপ্রধান()
{
খরচ <<objপৃ << 'n';

প্রত্যাবর্তন 0;
}

আউটপুট হল 'কিছু শব্দ'।

একটি C ++ প্রোগ্রামের জন্য যুক্তি

প্রোগ্রামের বাস্তবায়ন প্রধান () ফাংশন থেকে শুরু হয়। প্রধান () ফাংশনের আসলে দুটি alচ্ছিক পরামিতি রয়েছে। (চ্ছিক পরামিতি সহ প্রধান () ফাংশনের সিনট্যাক্স হল:

intপ্রধান(intargc,গৃহস্থালি *argv[argc])
{

প্রত্যাবর্তন 0;
}

অনুমান করুন যে এক্সিকিউটেবল সি ++ ফাইলের নাম অস্থায়ী। অনুমান করুন যে ব্যবহারকারীর দ্বারা টাইপ করা প্রোগ্রামটি তার পরিবেশ (অপারেটিং সিস্টেম) থেকে যে আর্গুমেন্টের প্রয়োজন, তা হল,

নিবন্ধ3বই কলম'বিশাল বাড়ী'

এখানে 5 টি যুক্তি আছে: নিবন্ধ, 3, বই, কলম, এবং বড় ঘর

প্রতিটি টেক্সট। একটি প্রোগ্রামের একটি সংখ্যাযুক্ত যুক্তি হল পাঠ্য। অন্য কথায়, প্রতিটি যুক্তি একটি স্ট্রিং। বড় ঘর উদ্ধৃতিতে আছে কারণ এটি একটি বাক্যাংশ। এই প্রোগ্রামটি চালানোর জন্য টার্মিনাল কমান্ড হবে:

/অস্থায়ী নিবন্ধ3বই কলম'বিশাল বাড়ী'

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

এখন, প্রধান () ফাংশন সিনট্যাক্সে, argc হল প্রোগ্রামের আর্গুমেন্টের সংখ্যা, প্লাস 1। এই ক্ষেত্রে, প্রোগ্রামের জন্য 5 টি আর্গুমেন্ট আছে। সুতরাং, argc হল 6. সিনট্যাক্সে, argv [argc] হল স্ট্রিংগুলির পয়েন্টারগুলির একটি অ্যারে। Argv [0] এ এই অ্যারের প্রথম মান কম্পাইলার দ্বারা দেওয়া হয়। এটি প্রোগ্রাম ফাইলের নামের একটি নির্দেশক। বাকি মানগুলি ব্যবহারকারীর টাইপ করা অর্ডারে প্রোগ্রাম আর্গুমেন্টের দিকে নির্দেশ করে। এই অ্যারের আকার হল argc। এই ক্ষেত্রে আকার 1 + 5 = 6।

অনুমান করুন যে সংকলনে, নিম্নলিখিত প্রোগ্রামটির নাম টেম্প:

#অন্তর্ভুক্ত
ব্যবহার নামস্থানঘন্টার;

intপ্রধান(intargc,গৃহস্থালি**argv)
{

খরচ <<argv[0] << ',' <<argv[] << ',' <<argv[2] << ',' <<argv[3] << ',' <<argv[4] << ',' <<argv[5] <<endl;

প্রত্যাবর্তন 0;
}

এখানে লক্ষ্য করুন, অ্যারে 'char*argv [argc]', 'char ** argv' হিসেবে ঘোষণা করা হয়েছে।

যদি এই প্রোগ্রামটি টার্মিনাল কমান্ড দিয়ে চালানো হয়,

/অস্থায়ী নিবন্ধ3বই কলম'বিশাল বাড়ী'

তারপর আউটপুট হবে:

/তাপমাত্রা, নিবন্ধ,3, বই, কলম, বড় বাড়ি

উল্লেখ্য যে এক্সিকিউটেবল ফাইলের নামের সাথে ডিরেক্টরি পাথ অন্তর্ভুক্ত করা হয়েছে।

এছাড়াও, মনে রাখবেন যে প্রোগ্রাম চলার সময় (প্রোগ্রামের কলিং), argc এর মান পাঠানো হয়নি।

উপসংহার

আইওস্ট্রিম ক্লাসে চারটি গুরুত্বপূর্ণ বস্তু রয়েছে যা হল cout, cin, cerr এবং clog। cin একটি ইনপুট বস্তু, যখন বাকিগুলি আউটপুট বস্তু। একটি প্রোগ্রাম চলাকালীন, প্রোগ্রামটির ইনপুট যখন প্রোগ্রামটি চলতে শুরু করে তখন থেকে ভিন্ন। যখন একটি প্রোগ্রাম চলতে শুরু করে, তখন প্রোগ্রামটি চালানোর কমান্ডের সাথে প্রোগ্রামে ইনপুট যোগ করা হয়, স্পেস দ্বারা আলাদা করে।