में अहस्ताक्षरित int सरणी मैं ints की एक सरणी के लिए एक सूचक है और इस तरह के रूप में सरणी की लंबाई है:sprintf और सी
unsigned int length = 3;
int *array; // Assume the array has 3 initialized elements
मैं भी एक स्ट्रिंग और एक बफर है (मान यह पर्याप्त रूप से बड़े है) जैसे sprintf में लाना:
char buffer[128];
const char *pattern = "(%d, %d, %d)\n";
मान लें कि pattern
केवल उस में "% d" एस और अन्य पात्रों होगा, लेकिन किसी भी रूप हो सकता है (यानी "टेस्ट% d:% d" या "% d % d "), और array
की लंबाई हमेशा"% d "की संख्या के समान होगी।
चूंकि सरणी की लंबाई कुछ भी हो सकती है, क्या कोई तरीका है कि मैं sprintf (buffer, pattern, &array[0], &array[1], &array[2])
कर सकता हूं बिना array
के तत्वों को स्पष्ट रूप से समझाए? sprintf (buffer, pattern, array)
की रेखाओं के साथ कुछ। मैं आवश्यकतानुसार कई सहायक कार्यों को लिख सकता हूं। मैं एक va_list faking के बारे में सोच रहा था, लेकिन यह बुरा अभ्यास प्रतीत होता है क्योंकि यह कार्यक्रम को एक निश्चित संकलक को प्रतिबंधित करता है।
है यह आवश्यक 'रों [0] = 0;'? – imreal