私はintの配列へのポインタと配列の長さを次のように持っています:
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を偽造することを考えていましたが、プログラムを特定のコンパイラに制限するため、これは悪い習慣のようです.