変数引数を printf/sprintf に渡す
質問:
クラスはどのように定義できますか可変数の引数を受け取り、それらを次のようにフォーマットするメソッドprintf?
例:
「error」メソッドを持つクラスを考えてみましょう:
class MyClass { public: void Error(const char* format, ...); };
Error メソッドは変数引数を取得する必要があります。 printf/sprintf を使用してフォーマットし、いくつかの処理を実行します。 action.
答え:
これを実現するには、vfprintf を使用します:
void Error(const char* format, ...) { va_list argptr; va_start(argptr, format); vfprintf(stderr, format, argptr); va_end(argptr); }
これにより、フォーマットされたテキストが標準エラー出力に出力されます。出力を文字列に保存するには、代わりに vsnprintf を使用します。 vsprintf はバッファ オーバーフローを引き起こす可能性があるため、使用しないでください。
以上がC クラスは printf/sprintf を使用して変数引数をどのように処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。