ホームページ > バックエンド開発 > C++ > C および C で可変数の引数を printf/sprintf に渡す方法

C および C で可変数の引数を printf/sprintf に渡す方法

Barbara Streisand
リリース: 2024-11-28 17:09:11
オリジナル
769 人が閲覧しました

How to Pass a Variable Number of Arguments to printf/sprintf in C and C  ?

変数引数を Printf/Sprintf に渡す

C および C では、 printf 関数と sprintf 関数は、書式設定された印刷と書き込みに使用されます。これらの関数を使用すると、後続の引数の出力方法を制御するフォーマット文字列を指定できます。ただし、出力される引数の数が事前にわからない場合もあります。このため、これらの関数に可変数の引数を渡す方法という問題が生じます。

vfprintf を使用した解決策

標準 C ライブラリには、可変数の引数を処理できる vfprintf 関数が用意されています。 2 つの必須引数を取ります:

  • format: フォーマット文字列へのポインタ。
  • argptr: 変数を保持する va_list argument.

次のコード スニペットは、使用方法を示しています。 vfprintf:

void Error(const char* format, ...)
{
    va_list argptr;
    va_start(argptr, format);
    vfprintf(stderr, format, argptr);
    va_end(argptr);
}
ログイン後にコピー

この例では、Error 関数は最初の引数としてフォーマット文字列を受け取り、任意の数の追加引数を受け取ります。これらの引数は、va_start を使用して初期化される va_list を通じてアクセスされます。次に、vfprintf 関数がフォーマット文字列と va_list を使用して呼び出されます。最後に、va_end を使用して va_list をクリーンアップします。

以上がC および C で可変数の引数を printf/sprintf に渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート