সি প্রোগ্রামিং এইচটিএমএল সিএসএস জাভাস্ক্রিপ্ট পিএইচপি এসকিউএল
ফোরাম
×

 সি টিউটোরিয়াল

সি প্রোগ্রামিং কি? সি এর ইতিহাস সি এর বৈশিষ্ট্যসমূহ কেন সি শিখবেন? সি ইন্সটলেশন প্রথম সি প্রোগ্রাম সি প্রোগ্রামের ফ্লো প্রোগ্রামিং শেখার সঠিক পদ্ধতি সি কীওয়ার্ড সি আইডেন্টিফায়ার সি ভ্যারিয়েবল সি কনস্ট্যান্ট সি ডাটা টাইপ সি মোডিফায়ার সি ইনপুট/আউটপুট সি অপারেটর সি কমেন্ট সি অপারেটর অগ্রাধিকার

সি কন্ট্রোল স্টেটমেন্ট

সি ইফ সি ইফ...ইলস সি ফর লুপ সি হোহাইল লুপ সি ডু...হোহাইল লুপ সি ব্রেক সি কন্টিনিউ সি সুইচ স্টেটমেন্ট সি goto স্টেটমেন্ট

 সি ফাংশন

সি ফাংশন পরিচিতি সি ইউজার কর্তৃক ফাংশন সি ফাংশন টাইপ সি রিকার্সন সি ভ্যারিয়েবল স্কোপ

 সি অ্যারে

সি অ্যারে পরিচিতি সি মালটি-ডাইমেনশনাল অ্যারে সি অ্যারে ফাংশন

 সি স্ট্রিং

সি স্ট্রিং সি স্ট্রিং ফাংশন

 সি পয়েন্টার

সি পয়েন্টার পরিচিত সি পয়েন্টার অ্যারে সি পয়েন্টার ফাংশন সি মেমোরি ম্যানেজমেন্ট

 সি ফাইল এবং স্ট্রাকচার

স্ট্রাকচার পরিচিত স্ট্রাকচার ও পয়েন্টার সি স্ট্রাকচার ও ফাংশন সি ইউনিয়ন ফাইল হ্যান্ডেলিং

 সি অতিরিক্ত টিউটোরিয়াল

সি লাইব্রেরী সি প্রিপ্রোসেসর এবং ম্যাক্রো সি ইনুমিরেশন সি এরর নিয়ন্ত্রণ সি টাইপ কাস্টিং সি বিট ফিল্ড সি ভ্যারিয়েবল আর্গুমেন্ট সি কমান্ড লাইন আর্গুমেন্ট

 

সি প্রোগ্রামিং ইনপুট-আউটপুট(I/O): printf() এবং scanf()


এই অধ্যায়ে আমরা সি প্রোগ্রামিং এর দুটি বিল্ট-ইন(built-in) ফাংশন printf() এবং scanf() কে বেশী ফোকাস করবো যা ইনপুট এবং আউটপুট কার্য সম্পাদনের জন্য ব্যবহৃত হয়। এছাড়া এই অধ্যায়ে আপনি বৈধ সি প্রোগ্রাম লেখাও শিখবেন।


ইনপুট এবং আউটপুট কার্যাবলী সম্পাদনের জন্য সি প্রোগ্রামিং এ কিছু বিল্ট-ইন লাইব্রেরী ফাংশন রয়েছে।

ইনপুট-আউটপুট( I/O) এর জন্য সবচেয়ে বেশী ব্যবহৃত দুটি ফাংশন হলো printf() এবং scanf()।

স্টান্ডার্ড ইনপুট ডিভাইস(কীবোর্ড) এর মাধ্যমে ইউজার থেকে formated ইনপুট নেওয়ার জন্য scanf() ফাংশন ব্যবহৃত হয়। পক্ষান্তরে স্টান্ডার্ড আউটপুট ডিভাইস(স্ক্রিন) এ formated আউটপুট পাঠানোর জন্য printf() ফাংশন ব্যবহৃত হয়।


ইনপুট এর সিনট্যাক্স

scanf("%c", &var_name);    // Character ইনপুট নেওয়ার জন্য
scanf("%d", &var_name);    // integer ইনপুট নেওয়ার জন্য
scanf("%f", &var_name);    // float ইনপুট নেওয়া হয়
scanf("%lf", &var_name);   // double ইনপুট নেওয়া হয়
scanf("%s", &var_name);    // string ইনপুট নেওয়া হয় 

আউটপুট এর সিনট্যাক্স

printf("%c", &var_name);    // Character এ আউটপুট পাওয়ার জন্য
printf("%d", &var_name);    // integer  এ আউটপুট পাওয়ার জন্য
printf("%f", &var_name);    // float এ আউটপুট পাওয়ার জন্য
printf("%lf", &var_name);   // double এ আউটপুট পাওয়ার জন্য
printf("%s", &var_name);    // string এ আউটপুট পাওয়ার জন্য

উদাহরণঃ সি আউটপুট

#include <stdio.h>      // printf() ফাংশন রান করানোর জন্য ইহা প্রয়োজন। 
int main()
{
    printf("C Programming");  //কোটেশনের ভেতরের কন্টেন্ট প্রদর্শিত হয়।
    return 0;
}

আউটপুট

C Programming

প্রোগ্রাম কিভাবে কাজ করে তার ব্যাখ্যা নিচে ধাপে ধাপে দেওয়া হলোঃ


উদাহরনঃ সি ক্যারেক্টার ইনপুট/আউটপুট

#include <stdio.h>
int main()
{
    char character;
    printf("Enter a character: ");
    scanf("%c",&character);  // ক্যারেক্টার এর  জন্য %c ফরম্যাট স্ট্রিং ব্যবহৃত হয়   
    printf("You entered %c.",character);  
    return 0;
}   

আউটপুট

Enter a character: t
You entered t.

ফরম্যাটেড ক্যারেক্টার ইনপুট গ্রহণ এবং আউটপুট পাঠানোর জন্য "%c" ফরম্যাট স্ট্রিং ব্যবহৃত হয়।


উদাহরনঃ সি ইন্টেজার আউটপুট

#include <stdio.h>
int main()
{
    int integerNumber = 5;
    // ইন্টেজার এর  জন্য %d ফরম্যাট স্ট্রিং ব্যবহৃত হয়
    printf("Number = %d", integerNumber);
    return 0;
}

আউটপুট

Number = 5

printf() ফাংশনের কোটেশন মার্কের মধ্যে ইন্টেজারের জন্য ফরম্যাটেড(formated) স্ট্রিং "%d" রয়েছে। এক্ষেত্রে ফরম্যাট স্ট্রিং যদি integerNumber আর্গুমেন্টের সাথে মিলে যায় তাহলে ইহা স্ক্রিনে আউটপুট দেখায়।


উদাহরনঃ সি ইন্টেজার ইনপুট/আউটপুট

#include <stdio.h>
int main()
{
    int IntegerNumber;
    printf("Enter an integer number: ");
    scanf("%d",&IntegerNumber);  
    printf("Number = %d",IntegerNumber);
    return 0;
}

আউটপুট

Enter an integer number: 4
Number = 4

scanf() ফাংশন কীবোর্ড থেকে ফরম্যাটেড(formated) ইনপুট গ্রহণ করে। যখন ইউজার ইন্টেজার নাম্বার ইনপুট দেয় তখন ইহা IntegerNumber ভ্যারিয়েবলের মধ্যে সংরক্ষিত হয়।

লক্ষ্য করলে দেখবেন যে, IntegerNumber এর পুর্বে '&'চিহ্ন আছে। &IntegerNumber দ্বারা IntegerNumber এর এড্রেসকে নির্দেশ(point) করে এবং ইনপুট ভ্যালু ঐ এড্রেসে জমা হয়।


উদাহরণঃ সি ফ্লোট ইনপুট/আউটপুট

#include <stdio.h>
int main()
{
    float floatNumber;
    printf("Enter a number: ");
    // ফ্লোটের জন্য %f ফরম্যাট স্ট্রিং ব্যবহৃত হয়
    scanf("%f",&floatNumber);
    printf("Value = %f", floatNumber);
    return 0;
}

আউটপুট

Enter a number: 23.45
Value = 23.450000

ফ্লোটের জন্য ফরম্যাটেড ইনপুট গ্রহণ এবং আউটপুট পাঠানোর জন্য "%f" ফরম্যাট স্ট্রিং ব্যবহৃত হয়


আসকি(ASCII) কোড

উপরের প্রোগ্রামে যখন কোনো ক্যারেক্টার প্রবেশ করানো হয়, ক্যারেক্টার তার নিজের ফরম্যাটে সংরক্ষিত হয় না। বরং সংখ্যা ভ্যালু(আসকি ভ্যালু) ফরম্যাটে সংরক্ষিত হয়।

যখন আমরা "%c" টেক্সট ফরম্যাট ব্যবহারা করে প্রিন্ট নিই তখন ইহা স্ক্রিনে ক্যারেক্টার ফরম্যাটে দেখায়।


উদাহরনঃ আসকি কোড

#include <stdio.h>
int main()
{
    char character;
    printf("Enter a character: ");
    scanf("%c",&character);     

    //যখন আমরা "%c" টেক্সট ফরম্যাট ব্যবহার করে প্রিন্ট নিই তখন ইহা ক্যারেক্টার ফরম্যাটে স্ক্রিনে দেখায়।
    printf("You entered %c.\n",character);  

    //যখন আমরা "%d" টেক্সট ফরম্যাট ব্যবহার করে প্রিন্ট নিই তখন ইহা ইন্টেজার ফরম্যাটে স্ক্রিনে দেখায়।
    return 0;
}

আউটপুট

Enter a character: b
You entered b.
ASCII value of g is 96.

ক্যারেক্টার 'b' এর ASCII ভ্যালু হলো 96। যখন 'b' প্রবেশ করানো হয় তখন character ভ্যারিয়েবলে 'b' এর পরিবর্তে 96 জমা হয়।

আপনি যদি কোনো ক্যারেক্টারের আসকি কোড জানেন তাহলে ক্যারেক্টার হিসাবে আউটপুট নিতে পারবেন। নিচের উদাহরণে ইহা দেখানো হলোঃ


উদাহরনঃ সি আসকি কোড

#include <stdio.h>
int main()
{
    int character = 70;
    printf("Character of ASCII value 70 is %c.",character);
    return 0;
}  

আউটপুট

Character of ASCII value 70 is F.