C Programming Language শিখুন (পার্ট -১৪) Data input output

সবাইকে সালাম জানিয়ে আমি আবারো আমার C Programming নিয়ে টিউন শুরু করছি। এর আগে ১৩ টি টিউন করছি। এবার আবার যেন না থেমে আরো ১৩ টি করতে পারি সে দোয়া করবেন। আমাকে মনে হয় আপনার ভুলে গেছেন, সাথে প্রোগ্রামিং ও তাই না? তার জন্য আমি ই দায়ি। সে জন্য ক্ষমা চেয়ে নিচ্ছি। আমাকে নিশ্চয়ই ক্ষমা করবেন । চলুন তাহলে আবার ও শুরু করা যাক।  এর আগের পার্টের লিঙ্কটি দিয়ে দিলাম। আর পুনরায় আবার সবগুলো জালাই করে নিতে তো আমার টিউনার পেজ তো রয়েছেই।

C Programming Language শিখুন (পার্ট -১৩)-Data input output

আমরা এর আগে আমরা একটি মাত্র  character কম্পিউটারে কিভাবে getchar এর সাহায্যে input নেওয়া যায় তা দেখছি। এবার আমরা single character, numerical values এবং string কিভাবে কম্পিউটারে input নিব তা দেখবো। single character, numerical values. এবং string যেকোন মান কম্পিউটারে নেওয়ার জন্য “scanf” function ব্যবহার করা হয়। আবার putchar এর মত কোন মান পর্দায় দেখানোর জন্য “printf” function ব্যবহার করা হয়। putchar দিয়ে একটি মাত্র character কম্পিউটারে Out Put দেখানো যেত, কিন্তু “printf” function দ্বারা একদিক ডাটা যেমন single character, numerical values. এবং string ইত্যাদির যেকোন মান কম্পিউটারে Output দেখানো যায়।

“scanf” function ব্যবহারের নিয়মঃ

Scanf(control string, argument1, argument2,……..argumentn);

এখানে control string দ্বারা কোন ধরনের Data input নিব তার ফরমেট বুঝায়। আর argument দ্বারা Data কম্পিউটারে কোথায়(memory address এর কোন জাগায়) সংরক্ষন হবে তা বুঝায়।

যেমন একটি প্রোগ্রামে নিন্মোক্ত Scanf statement টি রয়েছেঃ

char name;

scanf(“%c”,&name);

এখানে name নামে একটি variable নেওয়া হয়েছে। তার পর আমরা এখন ইনপুট ডিভাইস থেকে এ চলকের মান  কম্পিউটারে নিব। এ জন্য Scanf(“%c”,&name); statement দিয়ে তা নেওয়া হয়েছে।

এখানে control string হচ্ছে c। প্রতিটি control string একটি % চিহ্ন দিয়ে শুরু করতে হয়। তাই এখানে control stringটি %c দ্বারা লিখা হয়েছে। এখানে c দ্বারা বুঝানো হয় যে Data item একটি single character। এরকম আরো অনেক গুলো control string রয়েছে। নিছে এর একটি তালিকা দেওয়া হল।

CodeMeaning
%aInput হিসেবে Floating-point  Data item  নিতে পারবে।
%cInput হিসেবে একটি মাত্র character Data item নিতে পারবে।
%dInput হিসেবে Decimal integer Data item নিতে পারবে।
%eInput হিসেবে Floating-point  Data item  নিতে পারবে।
%fInput হিসেবে Floating-point  Data item  নিতে পারবে।
%gInput হিসেবে Floating-point  Data item নিতে পারবে।
%iInput হিসেবে Decimal, Hexadecimal or Octal Integer Data item  নিতে পারবে।
%oInput হিসেবে Octal Integer Data item  নিতে পারবে।
%pInput হিসেবে Pointer Data item নিতে পারবে।( Pointer সম্পর্কে পরে আলোচনা করা হবে)।
%sInput হিসেবে String   Data item নিতে পারবে।
%uInput হিসেবে Unsigned decimal Data item নিতে পারবে।
%xInput হিসেবে Hexadecimal Data item নিতে পারবে।

“printf” function ব্যবহারের নিয়মঃ

printf(control string, argument1, argument2,……..argumentn);

এখানে control string দ্বারা কোন ধরনের Data Output দিবে তার ফরমেট বুঝায়। আর argument দ্বারা প্রতিটি Output Data প্রকাশ করে। এখানে কিন্তু “scanf” function এর মত memory address প্রকাশ করে না।

যেমন একটি প্রোগ্রামে নিন্মোক্ত “printf”  statement টি রয়েছেঃ

char name;

printf(“%c”, name);

এখানে name নামে একটি Character variable নেওয়া হয়েছে। এখন মনে করি nameএর মান কম্পিউটারে আছে আমরা তার Output বের করবো।তাই printf(“%c”, name); দ্বারা তা Output ডিভাইসে প্রকাশ করে। এখানে ও control string হচ্ছে c।scanf এর মর printf এ ও প্রতিটি control string একটি % চিহ্ন দিয়ে শুরু করতে হয়। তাই এখানে control stringটি %c দ্বারা লিখা হয়েছে। এখানে c দ্বারা বুঝানো হয় যে Data item একটি single character। scanf ও printf এর control string একই। তবে scanf এর control string দ্বারা কি ধরনের মান ইনপুট নিবে তা বুঝায়, আর printf এর control string দ্বারা কিধরনের মান আউটপুট দিবে তা বুঝায়। নিচে printf এর control string গুলো দেওয়া হল।

CodeMeaning
%aএটি ব্যবহার করলে Floating-point  Data item  আউটপুট দিবে।
%cএটি ব্যবহার করলে একটি মাত্র character Data item আউটপুট দিবে।
%dএটি ব্যবহার করলে Decimal integer Data item আউটপুট দিবে।
%eএটি ব্যবহার করলে Floating-point  Data item  আউটপুট দিবে।
%fএটি ব্যবহার করলে Floating-point  Data item  আউটপুট দিবে।
%gএটি ব্যবহার করলে Floating-point  Data item আউটপুট দিবে।
%iএটি ব্যবহার করলে Decimal, Hexadecimal or Octal Integer Data item আউটপুট দিবে।
%oএটি ব্যবহার করলে Octal Integer Data item  আউটপুট দিবে।
%pএটি ব্যবহার করলে Pointer Data item আউটপুট দিবে।
%sএটি ব্যবহার করলে String   Data item আউটপুট দিবে।
%uএটি ব্যবহার করলে Unsigned decimal Data item আউটপুট দিবে।
%xএটি ব্যবহার করলে Hexadecimal Data item আউটপুট দিবে।

এবার আমরা scanf ও printf এর ব্যবহারের উপর একটি ছোট্ট প্রোগ্রাম দেখিঃ

#include<stdio.h>

int main(void)

{

char name[80];

scanf("%s",&name);

printf("%s",name);

return 0;

}

এখানে একটি name নামে একটি character array (array সম্পর্কে পরে আলোচনা করা হবে) নেওয়া হয়েছে, যা মোট ৮০ টি character ধারন করতে পারবে(আসলে ৭৯ টি আরেকটি Null Character, যা সম্পর্কে পরে আলোচনা করা হবে) । তার পর এর মান ইনপুট ডিভাইস হতে নেওয়া হবে scanf function দ্বারা। scanf এর ভিতর %s দ্বারা বুঝানো হয়েছে যে এটি একটি String Input নিবে। তার পর এ মান printf("%s",name); দ্বারা পর্দায় আউটপুট দেখানো হয়েছে।

সবাইকে ধন্যবাদ। পরবর্তী টিউননে scanf নিয়ে আরো আলোচনা করব।

Level 0

আমি জাকির হোসাইন। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 14 বছর 8 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 224 টি টিউন ও 1487 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 5 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

পৃথিবীতে অল্পকয়েক দিনের জন্য অনেকেই আসে, হেঁটে খেলে চলে যায়। এর মধ্যে অল্প কয়েক জনই পায়ের চাপ রেখে যায়।ওদের একজন হতে ইচ্ছে করে। প্রযুক্তির আরেকটি সেরা ব্লগ টেকটুইটস। আপনাদের স্বাগতম, যেখানে প্রতিটি বন্ধুর অংশ গ্রহনে গড়ে উঠেছে একটি পরিবার। আপনাদের পছন্দ হবে আশা করি। ফেসবুকে আমি - ?জাকির!


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level 0

Thanks Boss for your Important Tunes

১৩ এর অনেকদিন পর…
বাহ বাহ অনেক ধন্যবাদ।

    হা, তাই… আগের গুলো হজম করতে সময় দিয়েছে 😛

মাথার সার্কিট জ্যাম হয়ে গেল। আচ্ছা এটাকে কোনভাবে প্রসেসিং করে শরবতের সাথে গুলে খাওয়া যায়না? তাও যদি এই অধমের মাথায় একটু ঢুকে!!

    :p ha ha সরবতের সাথে গুলে খেতে হবে না। এত কষ্ট ও করতে হবে না। তার চেয়ে একটু কষ্ট করে প্র্যকটিস করুন 😛

অনেকদিন পর ১৩ নং পর্ব পেলাম,
অনেক কাজের একটা টিউটোরিয়াল এতদূর পর্যন্ত নিয়ে এসেছেন তাই আপনাকে আন্তরিক অভিনন্দন।
আশা করছি শেষ পর্যন্ত যেতে পারব আপনার এই টিউটোরিয়ালটার সাথে।
অনেক অনেক ধন্যবাদ আপনাকে শুভ কামনা রইল।

    দোয়া করবেন। আর আপনেক অনেক ধন্যবাদ।

Level 0

ভাই খুব ভাল লেগেছে। আশা করি আরো tune pabo.

Level New

u r the best man……

অনেক বিস্তারিত বুঝিয়ে লিখেছেন। চালান ভাই 🙂

জি, আমরা বাঙালিরা সবই পারি 😀

Level 0

ভাই, আবার একটা ভাল টিউন এর জন্য ধন্যবাদ। আচ্ছা, void ব্যবহার করলে আবার কি return 0 ব্যবহার করার দরকার হয়? জানতে চাই।

    না।
    void main() এ ভাবে লিখলে লাগবে না।
    কিন্তু int main(void) এ ভাবে লিখলে লাগবে। আর এটি কম্পাইলারের উপর নির্বর করে। কোন কম্পাইলারে লাগে কোনটাতে লাগে না।

Level 0

Wrong: scanf("%s",&name);
Right: scanf("%s",name);