フォーマット文字列
フォーマット文字列は、入力されたデータのフォーマットです。この形式は%記号で始まり、その後に形式指定子が続きます。フォーマット指定子は、読み取られるデータのタイプに使用される特定の文字です。
arg1、arg2、arg3…は、入力されたデータが格納される変数のアドレスです。
scanf()関数
構文: int scanf(フォーマット文字列、arg1、arg2、arg3…)
頻繁に使用される指定子のいくつかは次のとおりです。
- NS –整数値に使用されます。
- NS –浮動小数点数に使用されます。
- NS –単一文字値に使用されます。
- NS –文字列に使用されます。
シングルを使用する scanf() 機能では、1つまたは複数の入力をユーザーから取得できます。
NS scanf() 関数は、標準入力(キーボード)から入力を受け取り、その値を変数に格納します。この関数は、ユーザーがEnterキーを押すまでユーザー入力を待ちます。入力した値はバッファに保存されています。エンターキーを押しているときは、 scanf() 関数が読み取りを開始します。
例1: 整数入力
//Example1.c#含む
int主要(()。{{
int私;
printf (('最初の整数値を入力してください:')。;
scanf (('%NS'、&私)。;
printf (('入力しました:%dNS'、私)。;
printf (('2番目の整数値を入力してください:')。;
scanf (('%NS'、&私)。;
printf (('入力しました:%dNS'、私)。;
戻る 0;
}
Example1.cでは、整数値を入力してEnterキーを押すとわかりました。 NS scanf() 関数は値を受け取り、それを変数に格納します。スペースで区切られた値を入力すると、スペースが検出されると関数は戻りますが、スペースの後の値は入力バッファーに残ります。だから2番目 scanf() 関数はユーザー入力を待機せず、代わりにバッファーから入力を受け取ります。
例2:単一文字入力
//Example2.c#含む
int主要(()。{{
charNS;
printf (('文字を入力してください:')。;
scanf (('% NS'、&NS)。;
printf (('入力しました:%cNS'、NS)。;
戻る 0;
}
Example2.cでは、 % NS 指定子、 scanf() 複数の文字を入力した場合でも、関数は1文字しか取りません。
例3:単一文字入力(複数回)
//Example3.c#含む
int主要(()。{{
charNS;
printf (('最初の文字を入力してください:')。;
scanf (('% NS'、&NS)。;
printf (('入力しました:%cNS'、NS)。;
printf (('2番目の文字を入力してください:')。;
scanf (('% NS'、&NS)。;
printf (('入力しました:%cNS'、NS)。;
戻る 0;
}
例4 :
//Example4.c#含む
int主要(()。{{
charNS;
printf (('最初の文字を入力してください:')。;
scanf (('% NS'、&NS)。;
printf (('入力しました:%cNS'、NS)。;
printf (('2番目の文字を入力してください:')。;
scanf (('% NS'、&NS)。;
printf (('入力しました:%cNS'、NS)。;
戻る 0;
}
例5:文字列入力
//Example5.c#含む
int主要(()。{{
char名前[15];
printf (('あなたの名前を入力してください: ')。;
scanf (('%NS'、名前)。;
printf (('入力しました:%sNS'、名前)。;
戻る 0;
}
getc()関数
構文: int getc(FILE * stream)
getc() 関数は、FILEポインタ(ストリーム)から文字を読み取るために使用されます。キーボードから読み取るには、を使用する必要があります stdin 。この関数は、読み取り文字の整数値を返します。
例6:
//Example6.c#含む
int主要(()。{{
charNS;
printf (('最初の文字を入力してください:')。;
その間((((NS= getc ((stdin)。)。=='NS')。;
printf (('入力しました:%cNS'、NS)。;
その間(( getc ((stdin)。!='NS')。;
printf (('2番目の文字を入力してください:')。;
その間((((NS= getc ((stdin)。)。=='NS')。;
printf (('入力しました:%cNS'、NS)。;
戻る 0;
}
getchar()関数
構文: int getchar(void)
getchar() 機能はと同じです getc() 。唯一の違いは getc() 関数は任意の入力ストリームから読み取ることができますが、 getchar() 関数は標準入力からのみ読み取ります。
例7:
//Example7.c#含む
int主要(()。{{
charNS;
printf (('最初の文字を入力してください:')。;
その間((((NS= getchar (()。)。=='NS')。;
printf (('入力しました:%cNS'、NS)。;
その間(( getchar (()。!='NS')。;
printf (('2番目の文字を入力してください:')。;
その間((((NS= getchar (()。)。=='NS')。;
printf (('入力しました:%cNS'、NS)。;
戻る 0;
}
結論
この記事では、入力関数がC言語でどのように使用されるかを見てきました。これらの関数はすべて入力バッファーから入力され、これらの関数を複数回使用する場合は、バッファーをクリアする必要があります。それ以外の場合、関数はユーザー入力を待機せず、バッファーから入力を取得します。