সমস্যা
C ভাষায় scanf() ফাংশন ব্যবহার করে স্ট্রিং এবং সংখ্যাসূচক ডেটা পড়ার সময় সাধারণ ত্রুটি ঘটেছে
সমাধান
scanf() ফাংশন সি ভাষায় stdin থেকে ফরম্যাট করা ইনপুট পড়তে ব্যবহৃত হয়। এটি এতে লেখা অক্ষরের সম্পূর্ণ সংখ্যা ফেরত দেয় অন্যথায়, একটি নেতিবাচক মান প্রদান করে।
সাধারণত ব্যবহারকারীর কাছ থেকে পূর্ণসংখ্যার পরে স্ট্রিং মান পড়ার সময় scanf() ফাংশনের ক্ষেত্রে, আমরা ঘন ঘন ত্রুটি পাই।
উদাহরণ
নীচে একটি সি প্রোগ্রাম রয়েছে যা রোল নম্বর (পূর্ণসংখ্যার মান) এবং একজন ছাত্রের নাম পড়ে -
#include <stdio.h> struct student { char name[10]; int roll; } s; int main(){ printf("Enter information of students:\n"); printf("\nEnter roll number: "); scanf("%d", &s.roll); printf("\nEnter name: "); gets(s.name); printf("\nDisplaying Information of students:\n"); printf("\nRoll number: %d\t", s.roll); printf("\nname:%s\t", s.name); return 0; }
আউটপুট
উপরের উদাহরণে, রোল নং:কম্পাইলার দ্বারা পড়া হয়েছিল, তারপর কম্পাইলার নাম পড়তে সক্ষম হয় না এবং পরবর্তী বিবৃতিতে চলে যায় যা printf("রোল নম্বর হল:%d\t, s.roll);
and the output is "Roll number: 3 name: "
C ভাষায় scanf() ফাংশন ব্যবহার করে স্ট্রিং এবং সাংখ্যিক ডেটা পড়ার সময় এটি একটি সাধারণ ত্রুটি।
Enter information of students: Enter roll number: 3 Enter name: //error Displaying Information of students: Roll number: 3 name: //error