6

snprintf配列を印刷するために使用することはまったく可能ですか? 複数の引数を取ることができることはわかっており、少なくともフォーマット文字列が示唆する数を期待していますが、1 つのフォーマット文字列と値の配列だけを指定すると、配列全体がバッファに出力されますか?

私が尋ねる理由は、ソース コードを変更しているためです。現在の実装では、文字列に配置される値は 1 つしかサポートされていませんでしたが、値の配列をサポートするように変更しています。元の実装をできるだけ変更したくありません。

これがうまくいかない場合、誰かがこれを行うために推奨する別の方法はありますか? 私はそれを吸い上げて for ループを使用する必要がありますか (文字列バッファなしで実際にどれだけうまく機能しますか)?

本質的に: double の配列からすべての値を同じ文字列に取得して返すための最良の方法は何でしょうか?

4

2 に答える 2

0

私はこれで行くことにしました:

int ptr = 0;
for( i = 0; i < size; i++)
{
    ptr += snprintf(outbuf + ptr, sizeof(outbuf) - ptr, "%.15f ", values[i]);   
}

少し異なりますが、 @unwind のソリューションと同じ効果があります。このアイデアは、の参照ページから得ましたsnprintf()

于 2013-06-05T14:41:03.613 に答える