তোমার চমক দেখানো থামছে না। তোমার প্রতি স্যারের নির্ভরতাও কমছে না। বরং দিনকে দিন যেন সেটা ক্রমাগত বেড়েই চলছে। তবে, তোমার খুব একটা অসুবিধা হচ্ছে না। কারণ, তুমি তো তোমার কাজ কাউকে না কাউকে দিয়ে করিয়েই নিচ্ছ। এরই মধ্যে একদিন তোমার স্যার তোমাকে একটা মেইল করলো, তোমার নেক্সট অ্যাসাইনমেন্টের কথা জানিয়ে। মেইল ওপেন করতেই তোমার মাথায় আকাশ ভেঙ্গে পড়ল। কারণ, মেইলটা আগাগোড়া চায়নিজ ভাষায় লেখা। এবার তুমি কী করবে! কী করবে ভাবতে ভাবতে হঠাৎ, মাথা এলো সবসময় যেভাবে করো, সেভাবেই করবে। অর্থাৎ, তোমার কোন বন্ধুকে দিয়ে করিয়ে নেবে। কিন্তু, এমন কোন বন্ধুকে দরকার, যে স্যারের মেইল পড়ে, সেটা থেকে তোমাকে তথ্য উদ্ধার করে দিতে পারবে। তোমার সেই বন্ধুর নাম scanf()।
scanf() ফাংশন কিভাবে কাজ করে সেটাও stdio.h ফাইলের মধ্যে লেখা আছে। তাই আমাদের নতুন করে কিছু করতে হবে না। শুধু দরকার মত তাকে কল করে নিলেই চলবে। scanf() ফাংশন কিভাবে কাজ করে, সেটা বোঝার জন্য আমরা একটা প্রোগ্রাম লিখে ফেলি -
scanf() ফাংশন কিভাবে কাজ করে সেটাও stdio.h ফাইলের মধ্যে লেখা আছে। তাই আমাদের নতুন করে কিছু করতে হবে না। শুধু দরকার মত তাকে কল করে নিলেই চলবে। scanf() ফাংশন কিভাবে কাজ করে, সেটা বোঝার জন্য আমরা একটা প্রোগ্রাম লিখে ফেলি -
এই প্রোগ্রামটা রান করলে দেখতে পাবে, কিছুই হচ্ছে না কেবল স্ক্রিনে একটা কার্সর জ্বলছে আর নিভছে। তোমার ইচ্ছে মত একটা পূর্ণসংখ্যা লিখে এন্টার চাপো। তারপরও কিছুই হবে না। আরও একটা সংখ্যা লিখে এন্টার চাপো। ইয়ো! সাথে সাথে সংখ্যা দু'টোর যোগফল স্ক্রিনে দেখাবে। এবার তাহলে আমরা বুঝে নিই। scanf() ফাংশন দিয়ে আমরা আসলে কী কাজ করলাম। আমরা যখন scanf() ফাংশনকে কল করি, যখন " " চিহ্নের মধ্যে %d লিখে বুঝিয়েছি এই ফাংশনটা একটা ইন্টিজার ইনপুট নেবে। (যেমন করে printf() ফাংশনে %d দিয়ে বোঝাতাম, এটা একটা ইন্টিজার প্রিন্ট করবে) তারপরে কমা দিয়ে &a লিখে বুঝিয়েছি, যে সংখ্যাটা ইনপুট নেয়া হবে, সেটা a ভ্যারিয়েবলের মধ্যে থাকবে। একইভাবে পরের লাইনে বুঝিয়েছি, যে সংখ্যাটা ইনপুট নেয়া হবে সেটা b ভ্যারিয়েবলের মধ্যে থাকবে। কিন্তু, এখানে & চিহ্নটার কাজ কী? আসলে scanf() ফাংশনটাকে এমনভাবে লেখা হয়েছে যে, একে কল করার সময় যে ভ্যারিয়েবলে ইনপুটটাকে রাখতে হবে, সেই ভ্যারিয়েবলের মেমরি অ্যাড্রেসটা দিতে হয়। আমরা যখন কোন ভ্যারিয়েবলের নামের আগে & চিহ্ন দিই, তখন সেই ভ্যারিয়েবলের মানে বদলে তার সেটা মেমরির কততম কুঠুরিতে আছে, সেটা জানা যায়। তুমি যদি একটা প্রোগ্রামে printf() ফাংশনটা এভাবে লিখো - printf("%d", &a); তাহলে দেখবে বেশ বড় একটা সংখ্যা দেখাচ্ছে। এই সংখ্যাটাই হচ্ছে, ওই ভ্যারিয়েবলের মেমরি অ্যাড্রেস।
আমরা চাইলে একই scanf() ফাংশনের মধ্যে একাধিক ইনপুট নিতে পারি। এমনকি চাইলে বিভিন্ন ধরণের ইনপুটও নিতে পারি। নিচের প্রোগ্রামটা দেখা যাক।
তোমাদের আজকের হোমওয়ার্কটা না হয়, এবার তোমরা নিজেরাই ঠিক করে নাও।
No comments:
Post a Comment