にunsigned int型配列Iはintの配列とのような配列の長さへのポインタを有する:はsprintfとC
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および他の文字を持っているだろうと仮定しますが、任意の形式かもしれない(すなわち、「テストは%d:%d」または「%dの%d ")、長さはarray
は常に"%d "の数と同じであることを確認してください。
配列の長さは何でもかまいませんので、array
の要素を明示的に列挙せずにsprintf (buffer, pattern, &array[0], &array[1], &array[2])
を実行できる方法はありますか? sprintf (buffer, pattern, array)
の行に沿った何か。私は必要なだけ多くのヘルパー関数を書くことができます。私はva_listを偽造することを考えていましたが、プログラムを特定のコンパイラに制限するので、これは悪い習慣と思われます。フォーマット文字列をする必要がありますので、あなたのような何かを行うことができます
は、この必要な 'sです[0] = 0;'? – imreal