কম্পিউটার টিউটোরিয়াল

C-তে scanf() এবং gets() এর পার্থক্য


C ভাষায় scanf() এবং gets() উভয় ফাংশনই এক্সটার্নাল সোর্স থেকে ইনপুট নিয়ে সিস্টেমে পাস করার জন্য ডিফাইন করা আছে। এখন এই দুটি ফাংশনের মধ্যে কিছু বৈশিষ্ট্যমূলক পার্থক্য রয়েছে।

C-তে scanf() এবং gets() এর মধ্যে গুরুত্বপূর্ণ পার্থক্যগুলো নিচে দেওয়া হলো −

ক্র. নং মূল বিষয় scanf() ফাংশন gets() ফাংশন
1 সংজ্ঞা scanf() ফাংশন কীবোর্ড থেকে ইনপুট পড়ে এবং দিয়ে गये ফরম্যাট স্পেসিফায়ার অনুযায়ী সেগুলো স্টোর করে। এটি হোয়াইটস্পেস, নিউলাইন বা EOF পাওয়া পর্যন্ত ইনপুট পড়ে। অন্যদিকে gets() ফাংশন কীবোর্ড থেকে নিউলাইন বা EOF পাওয়া পর্যন্ত ইনপুট গ্রহণ করে। হোয়াইটস্পেসটি ইনপুটের অংশ হিসেবে বিবেচিত হয়।
2 হোয়াইটস্পেস scanf() ফাংশনে হোয়াইটস্পেস ইনপুট ক্যারেক্টার হিসেবে বিবেচিত হয় না এবং যদি মাঝপথে কোনো হোয়াইটস্পেস পাওয়া যায় তবে ইনপুট পড়া বন্ধ করে দেয়। অন্যদিকে gets() ফাংশনে হোয়াইটস্পেস ইনপুট ক্যারেক্টার হিসেবে বিবেচিত হয় এবং এটি হোয়াইটস্পেস পাওয়া সত্ত্বেও ইনপুট সোর্স থেকে পড়া চালিয়ে থাকে।
3 সিনট্যাক্স scanf() ফাংশন ফরম্যাট স্ট্রিং এবং ভেরিয়েবলগুলোর অ্যাড্রেসের লিস্ট নেয়। যেমন: scanf("%d", &number); অন্যদিকে gets() ফাংশন গ্রহণ করা ভ্যালু স্টোর করার জন্য ভেরিয়েবলের নাম নেয়। যেমন: gets(name);
4 ডেটা টাইপ scanf() ফাংশন বিভিন্ন ডেটা টাইপের একাধিক মান পড়তে পারে। অন্যদিকে gets() ফাংশন শুধুমাত্র ক্যারেক্টার স্ট্রিং ডেটা গ্রহণ করতে পারে।

  1. জাভা ৮-এ Function এবং Predicate ফাংশনাল ইন্টারফেসের পার্থক্য

  2. Go এবং Java-এর পার্থক্য

  3. পাইথনে মেথড এবং ফাংশনের পার্থক্য

  4. পাইথনে raw_input() এবং input() ফাংশনের পার্থক্য