আমি নিম্নলিখিত প্রোগ্রাম আছে:
int main(int argc, char *argv[])
{
int a, b;
char c1, c2;
printf("Enter something: ");
scanf("%d",&a); // line 1
printf("Enter other something: ");
scanf("%d", &b); // line 2
printf("Enter a char: ");
scanf("%c",&c1); // line 3
printf("Enter another char: ");
scanf("%c", &c2); // line 4
printf("Done"); // line 5
system("PAUSE");
return 0;
}
আমি যেমন সি বইটিতে পড়েছি, লেখক বলেছেন যে scanf()
বাফারে একটি নতুন লাইন চরিত্র রেখে গেছে, সুতরাং, প্রোগ্রামটি ব্যবহারকারীদের ডেটা প্রবেশের জন্য লাইন 4 এ থামায় না, বরং এটি সি 2-তে নতুন লাইন অক্ষর সংরক্ষণ করে এবং তাতে চলে যায় লাইন 5।
এটা কি সঠিক?
তবে, এটি কি কেবল char
ডেটা টাইপের সাথে ঘটে ? যেহেতু আমি int
1, 2, 3 লাইনের মতো তথ্য প্রকারের সাথে এই সমস্যাটি দেখিনি it এটা কি ঠিক?
fflush(stdin)
কল করার আগে ব্যবহার করা যেতে পারেscanf()
। অনুগ্রহপূর্বক এবং সেই পদ্ধতির বিকল্পগুলির আলোচনার জন্য ব্যবহারfflush(stdin)
করে পড়ুন (যা উইন্ডোজে কম বেশি কাজ করে এবং বেশিরভাগ জায়গায় কাজ করে না)।