फॉर्मेट स्पेसिफायर्स का उपयोग C में इनपुट और आउटपुट उद्देश्यों के लिए किया जाता है। इस अवधारणा का उपयोग करके कंपाइलर समझ सकता है कि scanf() फ़ंक्शन का उपयोग करके इनपुट लेते समय और printf() फ़ंक्शन का उपयोग करके प्रिंट करते समय वेरिएबल में किस प्रकार का डेटा है। यहां फॉर्मेट स्पेसिफायर्स की सूची है।
| फॉर्मेट स्पेसिफायर | प्रकार |
|---|---|
| %c | कैरेक्टर |
| %d | हस्ताक्षरित पूर्णांक |
| %e या %E | फ्लोट्स का वैज्ञानिक संकेतन |
| %f | फ्लोट मान |
| %g या %G | %e या %E के समान |
| %hi | हस्ताक्षरित पूर्णांक (शॉर्ट) |
| %hu | अहस्ताक्षरित पूर्णांक (शॉर्ट) |
| %i | अहस्ताक्षरित पूर्णांक |
| %l या %ld या %li | लॉन्ग |
| %lf | डबल |
| %Lf | लॉन्ग डबल |
| %lu | अहस्ताक्षरित int या अहस्ताक्षरित लॉन्ग |
| %lli या %lld | लॉन्ग लॉन्ग |
| %llu | अहस्ताक्षरित लॉन्ग लॉन्ग |
| %o | अष्टाधारी प्रतिनिधित्व |
| %p | पॉइंटर |
| %s | स्ट्रिंग |
| %u | अहस्ताक्षरित int |
| %x या %X | हेक्साडेसिमल प्रतिनिधित्व |
| %n | कुछ भी प्रिंट नहीं करता |
| %% | % कैरेक्टर प्रिंट करता है |
ये बुनियादी फॉर्मेट स्पेसिफायर हैं। हम फॉर्मेट स्पेसिफायर्स के साथ कुछ अन्य भाग जोड़ सकते हैं। ये निम्न हैं:
- माइनस सिंबल (-) बाएं संरेखण बताता है
- % के बाद एक संख्या न्यूनतम फील्ड चौड़ाई निर्दिष्ट करती है। यदि स्ट्रिंग चौड़ाई से कम है, तो इसे स्पेस से भरा जाएगा
- एक पीरियड (.) फील्ड चौड़ाई और सटीकता को अलग करने के लिए उपयोग किया जाता है
उदाहरण
#include <stdio.h>
int main() {
char ch = 'B';
printf("%c\n", ch); // कैरेक्टर डेटा प्रिंट करना
// d और i के साथ दशमलव या पूर्णांक डेटा प्रिंट करना
int x = 45, y = 90;
printf("%d\n", x);
printf("%i\n", y);
float f = 12.67;
printf("%f\n", f); // फ्लोट मान प्रिंट करना
printf("%e\n", f); // वैज्ञानिक संकेतन में प्रिंट करना
int a = 67;
printf("%o\n", a); // अष्टाधारी प्रारूप में प्रिंट करना
printf("%x\n", a); // हेक्स प्रारूप में प्रिंट करना
char str[] = "Hello World";
printf("%s\n", str);
printf("%20s\n", str); // स्ट्रिंग सहित 20 कैरेक्टर दाएं शिफ्ट
printf("%-20s\n", str); // बाएं संरेखित
printf("%20.5s\n", str); // 20 कैरेक्टर दाएं शिफ्ट, और 5 कैरेक्टर तक स्ट्रिंग प्रिंट
printf("%-20.5s\n", str); // बाएं संरेखित और 5 कैरेक्टर तक स्ट्रिंग प्रिंट
return 0;
}
आउटपुट
B
45
90
12.670000
1.267000e+01
103
43
Hello World
Hello World
Hello World
Hello
Hello
हम इन फॉर्मेट स्पेसिफायर्स का उपयोग scanf() फ़ंक्शन के लिए भी उसी तरीके से कर सकते हैं। इसलिए हम scanf() से इनपुट वैसे ही ले सकते हैं जैसे हमने ऊपर प्रिंट किया है।