There are no items in your cart
Add More
Add More
Item Details | Price |
---|
Wonderful walkthrough of printf function in C
Wed Aug 31, 2022
C language मध्ये printf म्हणजेच print function ची ओळख पहील्याच दिवशी होते. डेनीस रिची ला C language हि compact form मध्येच हवी होती. म्हणून जाणीवपुर्वक त्याने input/output ची सोय language च्या definition मध्ये केलेली नाही. अर्थात printf हे फंक्शन C language चा inherent part आहे अशी अनेक जणांची सुरवातीला समजूत होते हा भाग वेगळा.
printf function हे formatted console I/O functions या category मध्ये येते. प्रथम मी या category चा अर्थ काय आहे ते सांगतो.
हे फंक्शन Compiler च्या library मध्ये उपलब्ध असते व त्याचा प्रोटोटाइप stdio.h या header file मध्ये असतो. तो साधारणपणे
int _CDECL printf(const char*, ...);
असा आहे. या prototype वरून कोणती माहीती मिळते...? तर
हे फंक्शन
printf function ची वैशिष्ठे
format specifier चा typical form
% [flags] [width] [.prec] [{h|l}] type
असा आहे.
या मध्ये अनेक प्रकारचे flags व type आहेत. पण महत्वाचे व नेहमी लागणारे मी येथे घेतो. बाकीचे स्पेशल पुढील पोस्ट मध्ये.
int x = 55;
printf("x = %o",x);
असे असेल तर o हा एखादा integer number जर octal format मध्ये print करायचा असेल तर वापरतात. या ठिकाणी तुम्हाला output मात्र
x = 67
असे येइल. पण तुम्हाला true octal representation हवे असेल तर मात्र printf function
printf("x = %#o",x);
असे लिहावे लागेल, या ठिकाणी # हा flag आहे .
समजा तुम्हाला x = 55 या स्टेटमेंट नंतर value print करतांना मात्र +55 अशी हवी असेल तर + flag वापरावा लागेल जसे की
printf("x = %+d",x);
समजा आपल्याला 55 च्या अलीकडे 4 zero हवे आहेत. तर 0 असा flag टाकावा लागेल. जसे की
printf("x = %06d",x);
असे स्टेटमेंट लिहीले तर output
x = 000055
असे मिळेल.
print होतांना तुम्हाला width specify करायची असेल तर ती सुद्धा देउ शकता. जसे की
printf("x = %d",x);
असे लिहीले तर output
x = 55
असे मिळेल. पण समजा
printf("x = 10d",x);
असे लिहीले तर 10 columns जागा राखीव ठेवून मग त्या ठिकाणापासून डाव्या बाजूला printing होइल जसे कि
x = 55
असे होइल. समजा
float y = 6.7;
असे स्टेटमेंट असेल तर
printf("y = %f",y);
हे स्टेट्मेंट printing करतांना
y = 6.700000
असे करेल. पण जर
printf("%0.2f",y);
असे लिहीले तर मात्र output
y = 6.70
असे मिळेल.
C language मध्ये असलेल्या वेगवेगळ्या format specifiers ची माहीती मी वेगळ्या पोस्ट मध्ये मिळतील.
Bhalchandra Gholkar
A passionate C/C++ language lover