printf/sprintf に変数の引数を渡す
プログラミングでは、可変長のテキストやデータをフォーマットして表示する必要がよくあります。一般的に printf や sprintf などの関数によって処理されるタスク。ただし、これらの関数には通常、固定数の引数が必要です。これらの関数に可変の数の引数を渡すにはどうすればよいですか?
解決策: va_* 関数の使用
C 言語には、接頭辞「va_」が付いた一連の関数が用意されています。 " これにより、可変長の引数リストを操作できるようになります。これらの関数には、va_start、va_arg、および va_end が含まれます。
可変数の引数を printf または sprintf に渡すには、次の手順を使用できます。
例:
#include <stdio.h> #include <stdarg.h> class MyClass { public: void Error(const char* format, ...) { va_list argptr; va_start(argptr, format); vfprintf(stderr, format, argptr); va_end(argptr); } };
この例では、Error メソッドは書式文字列と可変数の引数を受け取ります。 va_arg を使用して引数を取得し、vfprintf を呼び出してテキストをフォーマットして stderr に出力します。
注:
vfprintf の代わりに vsprintf を使用することもできます。バッファ オーバーフローの影響を受けやすいため、お勧めできません。
以上が可変数の引数を printf/sprintf に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。