我有一个指向int数组的指针和数组的长度:
unsigned int length = 3;
int *array; // Assume the array has 3 initialized elements
Run Code Online (Sandbox Code Playgroud)
我也有一个字符串和一个缓冲区(假设它足够大)放入sprintf中:
char buffer[128];
const char *pattern = "(%d, %d, %d)\n";
Run Code Online (Sandbox Code Playgroud)
假设pattern
只有"%d"和其他字符,但可以是任何形式(即"Test%d:%d"或"%d%d"),并且长度array
将始终相同作为"%d"的数量.
由于数组的长度可以是任何东西,有没有办法在sprintf (buffer, pattern, &array[0], &array[1], &array[2])
没有明确枚举元素的情况下做到array
?有点像sprintf (buffer, pattern, array)
.我可以根据需要编写尽可能多的辅助函数.我正在考虑伪造一个va_list,但这似乎是不好的做法,因为它将程序限制为某个编译器.