किसी कारण से, मैं नहीं कर यह काम कर पाने:va_start में स्ट्रिंग का उपयोग कैसे करें?
void examplefunctionname(string str, ...){
...
va_start(ap, str.c_str());
है और न ही मैं इस काम मिलता है:
void examplefunctionname(string str, ...){
...
int len = str.length();
char *strlol = new char[len+1];
for(int i = 0; i < len; i++){
strlol[i] = str[i];
}
strlol[len] = 0;
va_start(ap, strlol);
लेकिन यह करता है:
void examplefunctionname(const char *str, ...){
...
va_start(ap, str);
किसी ने मुझे दिखा सकता है मैं कैसे const char *
के बजाय स्ट्रिंग का उपयोग कर सकते हैं?
इसके यादृच्छिक संख्या outputting जब मैं फोन examplefunctionname("%d %d %d", 1337, 1337, 1337)
आप अपने उदाहरणों में 'va_start (ap, str)' का उपयोग क्यों नहीं कर रहे हैं जहां फ़ंक्शन 'स्ट्रिंग' लेता है? आपको 'va_start' मैक्रो में पैरामीटर के नाम का उपयोग करना होगा, मनमाना अभिव्यक्ति नहीं। –
ओह डर्न, मैंने सोचा कि यह वहां एक स्ट्रिंग पढ़ता है, इसलिए यह चर के लिए एक पता लेता है ... और अंतिम चर जानने के लिए इसका उपयोग करता है और फिर लूप को अगली बार? आह .. मैं इसे अब देखता हूँ – Newbie