কম্পিউটারের মাধ্যমে কোন সমস্যা সমাধানের নিমিত্তে প্রােগ্রাম তৈরি করা হয়। কিন্তু প্রােগ্রামে যদি সঠিক পদ্ধতিতে Data Input ও Output না করা যায় তাহলে সমস্ত শ্রমই ব্যর্থতায় পর্যবসিত হবে। তাই কিভাবে Program এ ডাটা। Input করা যায় কিংবা Output পাওয়া যায় এ সম্পর্কে সম্যক ধারণা থাকা প্রয়ােজন।
ফরম্যাটেড ইনপুট-আউটপুট স্টেটমেন্ট (FormattedTO statement)ঃ
যেসব স্টেটমেন্টের মাধ্যমে প্রােগ্রামে কোন ভেরিয়েবলের মান ইনপুট নেয়া যায় কিংবা প্রােগ্রাম হতে প্রাপ্ত ফলাফল আউটপুট পাওয়া যায় সেসব স্টেটমেন্টসমূহকে Formatted Input-Output statement বলে। যেমন- scanf (), printf (), getch () ইত্যাদি।
ফরম্যাটেড ইনপুট স্টেটমেন্ট (Formatted Input Statement) : সাধারণত প্রােগ্রামে ভেরিয়েবল ইনপুট নেয়ার । জন্য এই ধরনের Statement ব্যবহার করা হয়। যেমন- scanf (), getchar (), getche (), getch (), gets () ইত্যাদি।
scanf () ফাংশনঃ
scanf () ফাংশনের মাধ্যমে Keyboard থেকে কোন মান, ক্যারেক্টার, শব্দ (word) ইত্যাদি Input নিয়ে কোন । ভেরিয়েবলে সংরক্ষণ করা যায় এবং পরে এগুলােকে নিয়ে Process করে Screen- এ প্রদর্শন করা যায়।
scanf () ফাংশনের গঠন বা ফরম্যাট নিম্নরূপঃ
scanf (“Format Specifier”, &VariableName);
‘Format Specifier’ বলতে %c, %d, %f, %s, %e, %0, %x ইত্যাদিকে বুঝায়। অর্থাৎ যে Variable বা। Variable সমূহ ইনপুট নেয়া হবে সেসব Variable যে টাইপের সেই টাইপের Format Specifier ই হবে। যেমনVariable টি char টাইপের হলে Format Specifier হবে %c, variableটি int টাইপের হলে Format Specifier হবে %d, Variable টি float টাইপের হলে Format Specifier হবে %f । ” হচ্ছে অ্যাড্রেস অপারেটর। যে কোন ভেরিয়েবলের মান ইনপুট নিতে তার সাথে ‘a’ ব্যবহৃত হয়। ‘VariableName’ হচ্ছে সেসব Variable ইনপুট হিসেবে ব্যবহৃত হবে তাদের নাম ।
উদাহরণঃ দুটি int টাইপের ভেরিয়েবল x এবং y এর মান ইনপুট নিতে তার Statement নিম্নরূপঃ
scanf (“%d %d”, &x, &y); তিনটি Float টাইপের ভেরিয়েবল a, b, c এর মান ইনপুট নিতে তার Statement :
scanf (“%f%f%f”, &a, &b, &c); একটি Char টাইপের ভেরিয়েবল s এর মান ইনপুট নিতে Statement হবে ?
scanf (“%c”, &s); একটি char টাইপের ভেরিয়েবল T, দুটি int টাইপের ভেরিয়েবল M, N এবং একটি float টাইপের ভেরিয়েবল P ইনপুট নিতে Statement টি হবে নিম্নরূপঃ scanf(“%C %d %d %f”, &T, &M, &N, &P);
উলেখ্য যে, যে কয়টি ভেরিয়েবল ইনপুট নিতে হবে ঠিক সে কয়টি Format Specifier ও VariableName হবে। Format Specifier ও VariableName কমা (,) দ্বারা পৃথক থাকবে।