এস্কেপ সিকোয়েন্স বোঝা
C++ এস্কেপ সিকোয়েন্সগুলি স্ট্রিংগুলির মধ্যে নিয়ন্ত্রণ ফাংশন সম্পাদনকারী অক্ষরগুলিকে কোড হিসাবে ভুল না করে পাঠ্যের একটি অংশ হতে দেয়। নতুনদের জন্য একটি সাধারণ সমস্যা হল একটি আক্ষরিক স্ট্রিং এর ভিতরে উদ্ধৃতিগুলি সহ বিভ্রান্তি। উদাহরণস্বরূপ, কোডের নিম্নলিখিত লাইনটি একটি সংকলন ত্রুটির কারণ হবে কারণ '\t এস্কেপ সিকোয়েন্স' এর আশেপাশের উদ্ধৃতিগুলি স্ট্রিংটিকে সময়ের আগে শেষ করে দেয়:
স্ট্রিং txt = 'এই নিবন্ধটি অন্বেষণ সম্পর্কে ' \t এস্কেপ সিকোয়েন্স' উদাহরণের সাহায্যে।' ;একটি C++ প্রোগ্রামে এটি সংশোধন করার জন্য, আমরা কম্পাইলারকে সংকেত দেওয়ার জন্য ব্যাকস্ল্যাশ “\' একটি এস্কেপ অক্ষর হিসেবে ব্যবহার করব যে নিচের অক্ষরটির একটি বিশেষ ব্যাখ্যা রয়েছে। এটি কীভাবে করা হয়েছে তা এখানে:
স্ট্রিং txt = 'এই নিবন্ধটি অন্বেষণ সম্পর্কে \ ' \\ t escape sequence\' উদাহরণের সাহায্যে।' ;
C++ এ স্পেশাল ক্যারেক্টার (\t) এ ডুব দেওয়া
'\t' ক্রমটি কেবল একটি ব্যবধান সরঞ্জামের চেয়ে বেশি। এটি একটি ট্যাব অক্ষর উপস্থাপন করে যা কার্সারকে পরবর্তী ট্যাব স্টপে স্থানান্তরিত করে। টার্মিনাল অ্যাপ্লিকেশনগুলিতে সুন্দরভাবে ফর্ম্যাট করা পাঠ্য প্রদর্শন তৈরি করার জন্য এটি বিশেষভাবে কার্যকর। “\t” এর বাইরে, C++ বিভিন্ন উদ্দেশ্যে বিভিন্ন ধরনের পালানোর ক্রম সমর্থন করে—উদাহরণস্বরূপ, “\n” একটি নতুন লাইন তৈরি করে। যাইহোক, এই প্রবন্ধে, আমরা শুধুমাত্র C++-এ “\t” এস্কেপ সিকোয়েন্সের উপর ফোকাস করব যার উদ্দেশ্য এবং ব্যবহার প্রদর্শনের জন্য উদাহরণ প্রদান করে। এটি আপনাকে কার্যকরভাবে আপনার প্রোগ্রামিং কাজগুলিতে অনুভূমিক ট্যাব নিয়োগ করার জ্ঞান দেবে। একটি C++ প্রোগ্রামে “\t” এস্কেপ সিকোয়েন্সের কাজ বোঝার জন্য উদাহরণের দিকে এগিয়ে যাওয়া যাক।
উদাহরণ 1:
নিম্নলিখিত C++ কোড উদাহরণে একটি সাধারণ প্রোগ্রাম রয়েছে যা কনসোলে পাঠ্য মুদ্রণ করতে ব্যবহৃত হয়। নিম্নলিখিত কোড পড়ুন এবং আমরা পরে এটি ব্যাখ্যা করব:
# অন্তর্ভুক্ত করুন
নামস্থান std ব্যবহার করে ;
int প্রধান ( ) {
cout << 'এটি পাঠ্যের প্রথম লাইন।' << endl ;
cout << 'এটি পাঠ্যের দ্বিতীয় লাইন। \t ' ;
cout << 'এই লাইনটি একটি দ্বারা অনুসরণ করা হয়েছে \\ টি এস্কেপ সিকোয়েন্স।' ;
ফিরে 0 ;
}
এখানে কোডের প্রতিটি অংশের একটি বিশদ বিবরণ রয়েছে:
# অন্তর্ভুক্ত করুন
নামস্থান std ব্যবহার করে; - এই কোডটি আপনাকে 'std::' এর সাথে প্রিফিক্স না করে স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত নামগুলি ব্যবহার করতে দেয়৷ উদাহরণস্বরূপ, আপনি 'std::cout' এর পরিবর্তে 'cout' লিখতে পারেন।
int main() { - এটি প্রতিটি C++ প্রোগ্রামের প্রধান ফাংশনের ঘোষণা এবং এন্ট্রি পয়েন্ট। 'প্রধান' এর আগে 'int' সাধারণত নির্দেশ করে যে ফাংশনটি একটি পূর্ণসংখ্যা মান প্রদান করে।
cout << 'এটি পাঠ্যের প্রথম লাইন।'<
cout << 'এটি পাঠ্যের দ্বিতীয় লাইন।\t'; - এখানে, প্রোগ্রামটি আরেকটি স্ট্রিং আউটপুট করে যা হল 'এটি পাঠ্যের দ্বিতীয় লাইন।\t'। শেষে '\t' লক্ষ্য করুন। কনসোলে মুদ্রিত হলে, এটি পাঠ্যের ঠিক পরে একটি অনুভূমিক ট্যাব স্থান যোগ করে।
cout << 'এই লাইনটি একটি \\t পালানোর ক্রম অনুসরণ করে।'; - এই লাইনে, প্রোগ্রামটি প্রিন্ট করে 'এই লাইনটি একটি \t পালানোর ক্রম অনুসরণ করে।' আউটপুটে আক্ষরিকভাবে '\t' এস্কেপ সিকোয়েন্স ব্যবহার করা হয় যেহেতু ব্যাকস্ল্যাশ '\' নিজেই অন্য ব্যাকস্ল্যাশ দ্বারা এস্কেপ করা হয় যাতে একটি অনুভূমিক ট্যাবের পরিবর্তে '\t' নিজেই প্রিন্ট হয়।
রিটার্ন 0; - এটি প্রধান ফাংশনের সমাপ্তি চিহ্নিত করে এবং শূন্য প্রদান করে যা প্রোগ্রামটির সফল সম্পাদনকে নির্দেশ করে। যখন এই প্রোগ্রামটি চলে, আউটপুটটি এইরকম দেখায়:
উদাহরণ 2:
এখন, আসুন আমরা অন্য একটি উদাহরণ দেখি এবং “\t” এস্কেপ চরিত্রের জাদু দেখি। উদাহরণ হল একটি সহজ C++ প্রোগ্রাম যা একটি স্ট্যান্ডার্ড ইনপুট-আউটপুট স্ট্রিম লাইব্রেরি অন্তর্ভুক্ত করে এবং স্ট্যান্ডার্ড নেমস্পেস ব্যবহার করে। প্রোগ্রামটি কনসোলে নাম এবং তাদের সংশ্লিষ্ট শহর এবং দেশগুলির একটি ফর্ম্যাট করা টেবিল প্রিন্ট করার জন্য ডিজাইন করা হয়েছে।
# অন্তর্ভুক্ত করুননামস্থান std ব্যবহার করে ;
int প্রধান ( ) {
cout << 'নাম \t | \t শহর \t | \t দেশ' << endl ;
cout << '----------------------------------------------------------------' << endl ;
cout << 'এলিস \t | \t বেইজিং \t | \t চীন' << endl ;
cout << 'বব \t | \t অস্টিন \t | \t আমেরিকা' << endl ;
cout << 'ক্যাথে \t | \t প্যারিস \t | \t ফ্রান্স' << endl ;
cout << 'ডেভিড \t | \t ডারবান \t | \t দক্ষিন আফ্রিকা' << endl ;
cout << '----------------------------------------------------------------' << endl ;
ফিরে 0 ;
}
এখানে কোডের একটি ব্রেকডাউন রয়েছে:
আবার, # অন্তর্ভুক্ত করুন
নামস্থান std ব্যবহার করে; - এটি 'std::' এর সাথে উপসর্গের প্রয়োজন ছাড়াই 'std' নামস্থান থেকে সত্তাগুলিকে ব্যবহার করার অনুমতি দেয়৷
দ্য int main() { প্রতিটি C++ প্রোগ্রামের এন্ট্রি পয়েন্ট। আপনি যখন প্রোগ্রাম চালান, তখন এখান থেকে এক্সিকিউশন শুরু হয়।
প্রধান ফাংশনের মধ্যে, আমাদের নিম্নলিখিতগুলি রয়েছে:
cout << “নাম\t|\tCity\t|\tদেশ”<
cout << “——————————————- “<
পরবর্তী চারটি কাউট লাইন প্রতিটি টেবিলের একটি সারি প্রিন্ট করে। এই লাইনগুলি ট্যাবের সাথে একই বিন্যাস অনুসরণ করে এবং টেবিল আউটপুট তৈরির অংশ। ডেটার প্রতিটি লাইনের পরে, পরবর্তী লাইনে যাওয়ার জন্য 'endl' ব্যবহার করা হয়। শেষ cout লাইনটি আবার টেবিলের ডেটার শেষ নির্দেশ করতে বিভাজক লাইনটি প্রিন্ট করে।
রিটার্ন 0;:- এই লাইনটি প্রোগ্রামটির সফল সম্পাদন নির্দেশ করে। 0 এর রিটার্ন মান সাফল্য নির্দেশ করে।
যখন এই প্রোগ্রামটি কম্পাইল করা হয় এবং চালানো হয়, তখন আউটপুটটি ব্যক্তিদের নাম, শহর এবং দেশগুলির সাথে কনসোলে একটি টেবিল হিসাবে উপস্থিত হবে যা উল্লম্ব বার (|) এবং ট্যাব দ্বারা পৃথক কলামগুলিতে সুন্দরভাবে সারিবদ্ধ। নিম্নলিখিত আউটপুট দেখুন:
বিঃদ্রঃ: মনে রাখবেন যে কনসোলে পাঠ্যের প্রকৃত প্রান্তিককরণ আপনার কনসোল বা টার্মিনালে ট্যাব সেটিংসের প্রস্থের উপর নির্ভর করে যার ফলে বিভিন্ন সিস্টেমে বিভিন্ন টেবিলের উপস্থিতি হতে পারে।
উদাহরণ 3:
এই সহজ কিন্তু আকর্ষণীয় C++ প্রোগ্রামটি পর্দায় একটি হীরার আকৃতি প্রিন্ট করতে “\t” ট্যাব এস্কেপ সিকোয়েন্স ব্যবহার করে। এই কোডটি 'হীরা' ভেরিয়েবলের উপর ভিত্তি করে হীরার আকার স্কেল করে যা আকারটি নির্দিষ্ট করে এবং হীরার কেন্দ্র থেকে উপরে বা নীচে পর্যন্ত লাইনের সংখ্যা উপস্থাপন করে। নিম্নলিখিত প্রদত্ত কোড চেক করুন:
# অন্তর্ভুক্ত করুননামস্থান std ব্যবহার করে ;
int প্রধান ( ) {
int হীরা = 3 ;
জন্য ( int i = 1 ; i <= হীরা ; ++ i ) {
জন্য ( int j = 0 ; j < হীরা - i ; ++ j ) {
cout << ' \t ' ;
}
জন্য ( int j = 0 ; j < 2 * i - 1 ; ++ j ) {
cout << '* \t ' ; }
cout << endl ;
}
জন্য ( int i = হীরা - 1 ; i >= 1 ; -- i ) {
জন্য ( int j = 0 ; j < হীরা - i ; ++ j ) {
cout << ' \t ' ;
}
জন্য ( int j = 0 ; j < 2 * i - 1 ; ++ j ) {
cout << '* \t ' ; }
cout << endl ;
}
ফিরে 0 ;
}
আপনি দেখতে পাচ্ছেন, এই প্রোগ্রামটি দুটি অংশ নিয়ে গঠিত: একটি হীরার উপরের অর্ধেক প্রিন্ট করে এবং অন্যটি নীচের অর্ধেক প্রিন্ট করে। ডায়মন্ডের উপরের অর্ধেকটি প্রথমে ইন্ডেন্ট তৈরি করতে ট্যাবগুলির একটি হ্রাসকারী সংখ্যক আউটপুট করে প্রিন্ট করা হয়, তারপরে ট্যাব দ্বারা পৃথক করা '*' এর ক্রমবর্ধমান সংখ্যক তারকাচিহ্ন দ্বারা অনুসরণ করা হয়। এটি প্রথম 'ফর' লুপের মধ্যে পরিচালনা করা হয়।
নীচের অর্ধেক একইভাবে প্রিন্ট করা হয়, কিন্তু লুপগুলি উল্টোভাবে পুনরাবৃত্তি করে তারকাচিহ্নের সংখ্যা কমাতে এবং আবার ইন্ডেন্ট বাড়াতে, হীরার নীচের অর্ধেক তৈরি করে। এটি দ্বিতীয় 'ফর' লুপে পরিচালনা করা হয়।
যখন 'diamond = 3' দিয়ে প্রোগ্রাম চালানো হয়, আউটপুটটি হীরার মতো দেখায় যা ট্যাব অক্ষরের কারণে স্ক্রিনে কেন্দ্রীভূত হয়। এই বিশেষ প্রোগ্রামের আউটপুট দেখুন:
দয়া করে মনে রাখবেন যে ট্যাবের প্রস্থে আপনি যে কনসোল বা টার্মিনাল ব্যবহার করেন তার উপর নির্ভর করে প্রকৃত চেহারা ভিন্ন হতে পারে।
উপসংহার
সি++ এস্কেপ সিকোয়েন্সগুলি এমন অক্ষরগুলিকে উপস্থাপন করার জন্য একটি শক্তিশালী টুল যা একটি আদর্শ আউটপুট উইন্ডোতে সহজেই প্রদর্শনযোগ্য নয়। এই ক্রমগুলির মধ্যে, অনুভূমিক ট্যাব, '\t' দ্বারা চিহ্নিত, পাঠ্যের মধ্যে নিয়ন্ত্রিত অনুভূমিক স্থান যোগ করার জন্য বিশেষভাবে কার্যকর। “\t” ব্যবহার করে, প্রোগ্রামাররা তাদের টেক্সট আউটপুটকে সারিবদ্ধ করতে পারে, পঠনযোগ্যতা বাড়াতে পারে এবং পদ্ধতিগতভাবে ডেটা গঠন করতে পারে। এই অক্ষরটি একটি কীবোর্ডের 'ট্যাব' কী টিপে অনুকরণ করে, কার্সারটিকে পরবর্তী ট্যাবের অবস্থানে নিয়ে যায়। এই প্রবন্ধে, আমরা C++ ভাষার মধ্যে “\t” এস্কেপ সিকোয়েন্সের কার্যকারিতা অন্বেষণ করেছি, এর ব্যবহারকে সহজবোধ্য এবং ব্যবহারিক উদাহরণ দিয়ে হাইলাইট করে এর আচরণ চিত্রিত করেছি।