मैं समझता हूँ printf
, fprintf
, sprintf
आदि कार्य करता है और vprintf
, vfprintf
, vsprintf
आदि कार्यों के बीच अंतर वे समारोह तर्क के साथ कैसे पेश से कोई लेना देना नहीं है। लेकिन कैसे विशेष रूप से? क्या वास्तव में किसी दूसरे का उपयोग करने का कोई कारण है? क्या मुझे हमेशा printf
का उपयोग करना चाहिए क्योंकि सी में देखने के लिए यह एक आम बात है, या इसके बजाय vprintf
चुनने का एक वैध कारण है?printf और vprintf फ़ंक्शन परिवारों के बीच क्या अंतर है, और मुझे दूसरे पर एक का उपयोग कब करना चाहिए?
Q
printf और vprintf फ़ंक्शन परिवारों के बीच क्या अंतर है, और मुझे दूसरे पर एक का उपयोग कब करना चाहिए?
38
A
उत्तर
59
printf()
और मित्र सामान्य उपयोग के लिए हैं। vprintf()
और दोस्तों के लिए जब आप अपना खुद का printf()
लिखना चाहते हैं। आप त्रुटियों मुद्रित करने के लिए एक समारोह लिखना चाहते हैं कहते हैं:
int error(char *fmt, ...)
{
int result;
va_list args;
va_start(args, fmt);
// what here?
va_end(args);
return result;
}
आप देखेंगे कि आप printf()
को args
पारित नहीं हो सकता, क्योंकि printf()
बल्कि एक va_list
तर्क से कई तर्क लेता है,।
int error(char *fmt, ...)
{
int result;
va_list args;
va_start(args, fmt);
fputs("Error: ", stderr);
result = vfprintf(stderr, fmt, args);
va_end(args);
return result;
}
13
आप कभी भी vprintf()
का उपयोग नहीं करना चाहते हैं, लेकिन जब आपको उदास होना आवश्यक है तो यह अविश्वसनीय रूप से आसान है लपेटें printf()
। इन मामलों के लिए, आप परिवर्तनीय तर्क (...) के साथ शीर्ष-स्तरीय फ़ंक्शन को परिभाषित करेंगे। फिर आप उन्हें va_list
में एकत्र करेंगे, अपनी प्रसंस्करण करें, और प्रिंटआउट होने के लिए va_list
पर अंततः vprintf()
पर कॉल करें।
संबंधित मुद्दे
- 1. #import और @class के बीच क्या अंतर है, और मुझे दूसरे पर एक का उपयोग कब करना चाहिए?
- 2. पायथन: (1,2,3) और [1,2,3] के बीच क्या अंतर है, और मुझे प्रत्येक का उपयोग कब करना चाहिए?
- 3. phtml क्या है, और मुझे .php के बजाय .phtml एक्सटेंशन का उपयोग कब करना चाहिए?
- 4. सी # मुझे सूची का उपयोग कब करना चाहिए और मुझे सरणीसूची का उपयोग कब करना चाहिए?
- 5. जेप्लेट और एप्लेट के बीच क्या अंतर है, और मुझे किस का उपयोग करना चाहिए?
- 6. उद्देश्य-सी में, मुझे कक्षा विधियों का उपयोग कब करना चाहिए और मुझे उदाहरण विधियों का उपयोग कब करना चाहिए?
- 7. जोलोका और jmxtrans के बीच क्या अंतर है? एक दूसरे पर कब चुनना है?
- 8. मुझे std_logic_vector का उपयोग कब करना चाहिए और मुझे अन्य डेटा प्रकारों का उपयोग कब करना चाहिए?
- 9. मुझे _aligned_malloc() का उपयोग कब करना चाहिए?
- 10. मुझे कब और क्यों एएसपीएनटी एमवीसी पर विचार करना चाहिए?
- 11. मुझे ConcurrentSkipListMap का उपयोग कब करना चाहिए?
- 12. मुझे fprintf के बजाय fputs का उपयोग कब करना चाहिए?
- 13. मुझे जूमला में setUserState का उपयोग कब करना चाहिए?
- 14. आपको जेसीआर का उपयोग कब करना चाहिए और आपको जेपीए/आरडीबीएमएस का उपयोग कब करना चाहिए?
- 15. एमएसआई और ईईई इंस्टॉलर्स के बीच अंतर क्या हैं, और मुझे कौन सा चयन करना चाहिए?
- 16. मुझे स्कैला की @inline एनोटेशन का उपयोग कब करना चाहिए (और मुझे नहीं चाहिए)?
- 17. मुझे remove_reference और add_reference का उपयोग कब करना चाहिए?
- 18. पर्ल में printf के बजाय मुझे क्या उपयोग करना चाहिए?
- 19. मुझे पेरर ("...") और fprintf (stderr, "...") का उपयोग कब करना चाहिए?
- 20. क्लोजर में कब और कब: के बीच क्या अंतर है?
- 21. numpy arrays और matrices के बीच अंतर क्या हैं? मुझे किसका उपयोग करना चाहिए?
- 22. मुझे CompiledQuery का उपयोग कब करना चाहिए?
- 23. मुझे अपाचे कॉमन्स 'Validate.isTrue का उपयोग कब करना चाहिए, और मुझे केवल' assert 'कीवर्ड का उपयोग कब करना चाहिए?
- 24. हटाएं पर ROWLOCK का उद्देश्य क्या है और मुझे इसका उपयोग कब करना चाहिए?
- 25. सी ++: मुझे कक्षाओं के बजाय structs का उपयोग कब करना चाहिए और गति अंतर कहां हैं?
- 26. मुझे सेफफोर्स का उपयोग कब करना चाहिए?
- 27. मुझे पैरामीटर का उपयोग कब करना चाहिए?
- 28. मुझे GC.SuppressFinalize() का उपयोग कब करना चाहिए?
- 29. मुझे सी में मॉलोक का उपयोग कब करना चाहिए और मैं कब नहीं?
- 30. ऐपडिलेगेट क्या है और मुझे इसका उपयोग कब करना है?
बेशक, तो आप एक 'चेतावनी दी है()' समारोह है कि तरह काम करता है चाहता हूँ:
vprintf()
काम करता है, तथापि, तर्कों की एक चर संख्या के बजाय एकva_list
तर्क लेते हैं, तो यहाँ पूरा संस्करण है 'त्रुटि() 'लेकिन प्रिंटिंग" चेतावनी: "इसके बजाय, आप अपना _own_' vprintf() 'शैली फ़ंक्शन बनाते हैं:' int verror (char * prefix, char * fmt, va_list args);' और 'त्रुटि() ' कॉल करें कि "त्रुटि:" और 'चेतावनी()' इसे "चेतावनी" के साथ कॉल करें, लेकिन यह सभी अर्थशास्त्र है। –विविधता कार्यों के बारे में जानने के लिए समय! इस जवाब ने चीजों को मंजूरी दे दी, धन्यवाद। –