我有一个指向整数数组的指针和数组的长度:
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"s 和其他字符,但可以是任何形式(即 "Test %d: %d" 或 "%d %d"),并且长度array
始终相同作为“%d”的数量。
由于数组的长度可以是任何值,有什么方法可以在sprintf (buffer, pattern, &array[0], &array[1], &array[2])
不显式枚举 的元素的情况下做array
吗?类似的东西sprintf (buffer, pattern, array)
。我可以根据需要编写尽可能多的辅助函数。我正在考虑伪造一个 va_list,但这似乎是一种不好的做法,因为它将程序限制为某个编译器。