সি প্রোগ্রামিং ভাষায় অন্যতম একটি লাইব্রেরী ফাংশন হল printf()। এ নথিতে এ ফাংশন নিয়ে বিস্তারিত আলোচনা করা হয়েছে।
C প্রোগ্রামিং ভাষায় অনেক রকমের লাইব্রেরী ফাংশন আছে; যেগুলা কোড লেখার সময় আমাদের নানা ভাবে সাহায্য করে থাকে , বলতে গেলে আমাদের কোড লেখা অনেক সহজ করে দেয়। এসব লাইব্রেরী ফাংশন এর মধ্যে অন্যতম হল printf() ফাংশন। এটি stdio.h লাইব্রেরীর অংশ।
এই ফাংশন টি একটি বহুল ব্যবহৃত ফাংশন । বলতে গেলে প্রতিটি প্রোগ্রামে বা কোড এ এই ফাংশন ব্যবহার করা হয়। যেকোনো কোড থেকে কোনো কিছু আউটপুট এ দেখানোর জন্য বা প্রিন্ট করার জন্য এই printf() ফাংশন ব্যবহার করা হয়। উদাহরণস্বরূপ বলা যায় প্রথম যখন কেউ C শেখা শুরু করে বেশিরভাগ ই প্রথম কোড করে “Hello world” প্রিন্ট করা। এখন আমরা দেখি কোড টা কেমন হয়ঃ
#include<stdio.h>
int main()
{
printf("Hello world");
return 0;
}
এই কোডটি লেখার পর কম্পাইলার এ “Build and run” করলে Standard output device এ (উইন্ডোজ এ কালো ভয়ংকর DOS পর্দায় 😉 ) “Hello world” দেখাবে। নিচের ছবিতে আউটপুট ব্ল্যাক স্ক্রিন দেখানো হলঃ
এর মানে হল printf() এর ভিতরে যা লিখা হবে তা আউটপুট স্ক্রিন এ দেখাবে। অর্থাৎ লেখার ধরন হলঃ printf(“যা ইচ্ছা তাই”);
খেয়াল রাখতে হবে printf() এর পরে বিভিন্ন syntex গুলা যাতে ঠিকমত দেওয়া হয় বিশেষ করে শেষের সেমিকোলন টা। নাহলে প্রোগ্রাম ঠিকমত কাজ করবে না। আরো বিস্তারিত জানতে আমাদের সি নির্দেশিকা দেখতে পারেন এখান থেকে।
এতক্ষন printf() ফাংশন এর বেসিক ধারনা হচ্ছিল। এখন একটু জটিল বিষয়ের দিকে যাওয়া যাক। আসলে জটিল না, এসব আমাদের সবার ই অহরহ ব্যবহার করা হবে। এখন ধরা যাক আমরা কোনো কিছু প্রিন্ট করব যা প্রোগ্রাম থেকেই আসবে, যা আগের প্রোগ্রামটির মত নয়। যেমন এমন একটা কোড করা হল যাতে দুইটা সংখ্যার যোগফল নির্ণয় করে যোগফল টি দেখাতে হবে। একটি উদাহরণ এর সাহায্যে সহজে বুঝা যাবেঃ
#include<stdio.h>
int main()
{
int a = 10, b = 20, sum;
sum = a + b;
printf("%d",sum);
return 0;
}
উপরের কোড টি তে দুইটি integer variable a এবং b তে দুইটি মান ১০ এবং ২০ নেওয়া হয়েছে। sum আরেকটি integer variable নেওয়া হয়েছে। পরের লাইন এ দুইটা মান যোগ করা হয়েছে এবং এরপরের লাইনে যোগফলটি প্রিন্ট করা হয়েছে।
এখন প্রশ্ন হল printf() এর ভিতর %d এবং sum কেন লেখা হয়েছে???
উত্তরঃ কারন হল আমরা এখানে যেসব variable নিয়েছি সব গুলো integer type। আর আমরা যোগফল টা integer type এই দেখাতে চাই। সুতরাং “%d” ব্যবহার করা হয়েছে শুধুমাত্র integer type ডাটা প্রিন্ট করার জন্য এভাবে
ডাটা টাইপ | printf ফাংশন এ যা লিখা লাগবে | Initialization |
int (integer) | printf(“%d”,x); | int x; |
float | printf(“%f”,x); | float x; |
double | printf(“%lf”,x); | double x; |
char (character) | printf(“%c”,x); | char x; |
string | printf(“%s”,x); | char x[…]; |
এখানে x রূপক অর্থে ব্যবহার করা হয়েছে। x হল যে মানটি প্রিন্ট করা হবে সেই মানটি যার কাছে আছে তার নাম। আগের প্রোগ্রাম টি তে sum ব্যবহার করা হয়েছিলো; কারন সেটিতে যোগফল এর মানটি sum integer type variable এর কাছে ছিল।
একই ভাবে অন্যান্য variable এর ক্ষেত্রে printf() এর কাজ নিজেরাই করে দেখুন। আর হ্যা যোগফল নির্ণয় এর প্রোগ্রামটির কোড কম্পাইলার এ চালিয়ে আউটপুট দেখে নিতে ভুলবেন না।