मेरे पास निम्नलिखित कार्यक्रम हैं:
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 के साथ नहीं देखा था । क्या यह सही है?
fflush(stdin)
जाता है कि कॉल से पहलेscanf()
किसी एकल वर्ण के लिए उपयोग किया जा सकता है । कृपया उस विधि के लिए पेशेवरों और विपक्षों और विकल्पों की चर्चा के लिए प्रयोगfflush(stdin)
करें (जो विंडोज पर काम करता है, अधिक या कम, और अधिकांश अन्य स्थानों पर काम नहीं करता है)।