Translations of this page?:

scanf

文法

    #include <cstdio>
    int scanf( const char *フォーマット, ... );

scanf()関数は、標準入力読み込んで、渡されたフォーマット西多賀って、他の引数として渡された変数にデータを保存します。入出力は逆ですが、printf()と非常に良く似ています。

フォーマット文字列は、下記のような制御文字、ホワイトスペース文字、ホワイトスペース以外の文字で構成されます。制御文字は%記号で始まります。以下のような種類があります:

制御文字説明
%c1文字
%d10進数の数値
%i数値
%e, %f, %g浮動小数点数
%lf倍精度の浮動小数点数(double)
%o8進数
%s文字列
%x16進数
%pポインタ
%nこの制御文字に来るまでに標準入力から読み込まれた文字数
%u符号なしの数値
%[ ]カッコ内に含まれる文字の集合
%%%記号

scanf()は、フォーマットで指定された文字にマッチさせながら、入力を読み込んでいきます。制御文字が読み込まれると、次の変数に値が格納されます。ホワイトスペース(タブ、スペースなど)はスキップされます。ホワイトスペース以外の文字は、入力と一致すると捨てられます。もしも%記号と制御文字の間に数値が記入されると、その文字数の文字だけが変数に変換されます。%[ ]制御文字で指定される文字集合が見つかった場合には、ブラケットの中に登場する文字だけが変数に格納されます。scanf()の返り値は読み込みに成功して、値が割り当てられた変数の数です。エラーが発生した場合にはEOFが返されます。

以下の短いコード片はint, float, doubleの変数の値をユーザが標準入力にタイプした情報から読み込みます。scanf()に渡す変数の引数はポインタを渡します。それぞれの変数名の前にアンパサンド(&)を付けます:

   int i;
   float f;
   double d;
 
   printf( "数値を入力してください: " );
   scanf( "%d", &i );
 
   printf( "浮動小数点数を入力してください: " );
   scanf( "%f", &f );
 
   printf( "倍精度浮動小数点数を入力してください: " );
   scanf( "%lf", &d );
 
   printf( "あなたが入力したのは %d, %f, %f です。\n", i, f, d );

関連トピック: fgets, fscanf, printf, sscanf

 
• • • IndexRecent changesRSScc