C ++ में vfprintf () फ़ंक्शन का उपयोग फ़ाइल स्ट्रीम में एक स्वरूपित स्ट्रिंग लिखने के लिए किया जाता है।
vfprintf () प्रोटोटाइप
int vfprintf (FILE * स्ट्रीम, कास्ट चार * प्रारूप, va_list vlist);
vfprintf()
समारोह स्ट्रिंग फ़ाइल धारा धारा के प्रारूप के आधार पर की ओर इशारा किया लिखता है। स्ट्रिंग प्रारूप में% के साथ शुरू होने वाले प्रारूप विनिर्देशक शामिल हो सकते हैं जो कि सूची सूची के रूप में पारित होने वाले चर के मूल्यों द्वारा प्रतिस्थापित किए जाते हैं।
इसे हेडर फ़ाइल में परिभाषित किया गया है।
vfprintf () पैरामीटर
- स्ट्रीम: परिणाम लिखने के लिए एक आउटपुट फाइल स्ट्रीम।
- प्रारूप: एक शून्य समाप्त स्ट्रिंग को इंगित करता है जो फ़ाइल स्ट्रीम में लिखा जाता है। इसमें% के साथ शुरू होने वाले वैकल्पिक प्रारूप विनिर्देशक के साथ वर्ण शामिल हैं।
प्रारूप निर्दिष्टकर्ता संबंधित स्ट्रिंग के मानों द्वारा प्रतिस्थापित किए जाते हैं जो प्रारूप स्ट्रिंग का अनुसरण करते हैं।
प्रारूप विनिर्देशक के निम्नलिखित भाग होते हैं:
- एक अग्रणी% चिन्ह
- झंडे: वैकल्पिक एक या अधिक झंडे जो रूपांतरण व्यवहार को संशोधित करते हैं।
- - - वाम क्षेत्र के भीतर परिणाम को सही ठहराते हैं। डिफ़ॉल्ट रूप से यह सही है।
- +: परिणाम का संकेत मूल्य की शुरुआत से जुड़ा है, यहां तक कि सकारात्मक परिणामों के लिए भी।
- अंतरिक्ष: यदि कोई संकेत नहीं है, तो परिणाम की शुरुआत के लिए एक स्थान जुड़ा हुआ है।
- #: रूपांतरण का एक वैकल्पिक रूप प्रदर्शन किया जाता है।
- 0: इसका उपयोग पूर्णांक और फ्लोटिंग पॉइंट संख्या के लिए किया जाता है। अंतरिक्ष के बजाय संख्याओं को पैड करने के लिए अग्रणी शून्य का उपयोग किया जाता है।
- चौड़ाई: न्यूनतम चौड़ाई क्षेत्र को निर्दिष्ट करने के लिए उपयोग किया गया एक वैकल्पिक * या पूर्णांक मान।
- परिशुद्धता: एक वैकल्पिक क्षेत्र जिसमें एक है। परिशुद्धता को निर्दिष्ट करने के लिए * या पूर्णांक या कुछ भी नहीं है।
- लंबाई: एक वैकल्पिक लंबाई संशोधक जो तर्क के आकार को निर्दिष्ट करता है।
- विनिर्देशक: रूपांतरण प्रारूप निर्दिष्ट करता है। उपलब्ध प्रारूप विनिर्देशक इस प्रकार हैं:
प्रारूप विनिर्देशक विवरण % प्रिंट% सी एकल चरित्र लिखता है एस एक चरित्र स्ट्रिंग लिखता है d या i दशमलव प्रतिनिधित्व के लिए एक हस्ताक्षरित पूर्णांक बदलता है ओ एक अहस्ताक्षरित पूर्णांक को अष्टक प्रतिनिधित्व में परिवर्तित करता है एक्स या एक्स एक अहस्ताक्षरित पूर्णांक को हेक्साडेसिमल प्रतिनिधित्व में परिवर्तित करता है यू एक अहस्ताक्षरित पूर्णांक को दशमलव प्रतिनिधित्व में परिवर्तित करता है च या च दशमलव प्रतिनिधित्व के लिए फ़्लोटिंग-पॉइंट संख्या को कनवर्ट करता है ई या ई दशमलव प्रतिपादक अंकन के लिए फ्लोटिंग-पॉइंट संख्या को परिवर्तित करता है ए या ए हेक्साडेसिमल एक्सपोनेंट के लिए फ्लोटिंग-पॉइंट नंबर को परिवर्तित करता है जी या जी फ़्लोटिंग-पॉइंट नंबर को या तो दशमलव या दशमलव घातांक संकेतन में परिवर्तित करता है एन इस कॉल द्वारा फ़ंक्शन में अब तक लिखे गए वर्णों की संख्या लौटाता है। परिणाम तर्क द्वारा इंगित मूल्य को लिखा जाता है पी एक सूचक को परिभाषित करते हुए एक कार्यान्वयन परिभाषित वर्ण अनुक्रम लिखता है। तो प्रारूप विनिर्देशक का सामान्य प्रारूप है:
%(flags)(width)(.precision)(length)specifier
- सूची: लिखने के लिए डेटा युक्त तर्कों की एक सूची।
vfprintf () रिटर्न वैल्यू
सफल होने पर, vfprintf()
फ़ंक्शन लिखित वर्णों की संख्या लौटाता है। असफल होने पर यह एक नकारात्मक मूल्य देता है।
उदाहरण: vfprintf () फ़ंक्शन कैसे काम करता है
#include #include void write(FILE* fp, const char *fmt,… ) ( va_list args; va_start(args, fmt); vfprintf(fp, fmt, args); va_end(args); ) int main () ( FILE *fp = fopen("data.csv","w"); char name(5)(50) = ("John","Harry","Kim","Yuan","Laxmi"); int age(5) = (13,41,26,21,32); write(fp, "%s,%s", "name", "age"); for (int i=0; i<5; i++) write(fp, "%s,%d", name(i), age(i)); return 0; )
जब आप प्रोग्राम चलाते हैं, तो data.csv फ़ाइल को निम्नलिखित लिखा जाएगा:
नाम, उम्र जॉन, 13 हैरी, 41 किम, 26 युआन, 21 लक्ष्मी, 32