ホームページ  >  記事  >  バックエンド開発  >  C言語の入力関数とは何ですか?

C言語の入力関数とは何ですか?

coldplay.xixi
coldplay.xixiオリジナル
2020-09-01 09:27:3743889ブラウズ

C 言語の入力関数は次のとおりです: 1. 標準入力 stdin からフォーマットされた入力を読み取る scanf() 関数; 2. 標準入力 stdin から文字を取得する getchar() 関数; 3. .gets() 関数は標準入力 stdin から行を読み取ります; 4. getch() 関数は stdin ストリームから文字列を読み取り、改行文字または EOF を受信すると停止します。

C言語の入力関数とは何ですか?

# このチュートリアルの動作環境: Windows 7 システム、c99 バージョン、Dell G3 コンピューター。

C 言語の入力関数は次のとおりです:

1. scanf

scanf() 関数の戻り値は次のとおりです。割り当てが成功した データ項目の数 ファイルの終わりの読み取り時にエラーが発生した場合は、EOF が返されます。

例:

scanf("%d%d", &a, &b);

a と b の両方が正常に読み取られた場合、scanf の戻り値は 2

a のみが正常に読み取られた場合、戻り値は次のようになります。 1

a も b も正常に読み取れなかった場合、戻り値は 0

エラーが発生した場合、またはファイルの終わりに遭遇した場合、戻り値は EOF

です値は int 型です。

空白文字: 空白文字により、scanf() 関数は読み取り操作中に入力内の 1 つ以上の空白文字を省略します。

非空白文字: 非空白文字により、scanf() 関数は読み取り時に非空白文字と同じ文字を削除します。

scanf関数使用時の注意点

(1) 文字列配列や文字列ポインタ変数の場合、配列名やポインタ変数名自体がアドレスとなるため、scanf関数を使用する場合は() 関数の前に「&」演算子を追加する必要はありません。

(2) 書式文字列内の「%」の各書式指定子の間に整数を追加して、読み取り操作の最大桁数を表すことができます。

(3) scanf() 関数には精度制御がありません。

例: scanf("%5.2f",&a); は無効です。このステートメントを使用して、小数点以下 2 桁の実数を入力することはできません。

(4) Scanf には変数アドレスが必要です。変数名を指定すると、エラーが発生します。

たとえば、scanf("%d",a); は不正なので、次のように指定する必要があります。 scnaf ("%d",&a); に変更することは正当です。

(5) 複数の数値データを入力する場合、入力データを区切る書式制御文字列に書式外文字がない場合は、スペース、TAB、またはキャリッジリターンを間隔として使用できます。

C コンパイラは、スペース、TAB、キャリッジ リターン、または不正なデータ (たとえば、"%d" に "12A" が入力された場合、A は不正なデータ) に遭遇すると、データが終了したとみなします。

(6) 文字データ(%c)を入力する場合、書式制御文字列に書式外文字が存在しない場合、入力された文字はすべて有効文字とみなされます。

(7) 書式制御文字列に非書式文字が含まれる場合は、入力時に非書式文字も入力する必要があります。

2. getchar

getchar の戻り値は int です。プログラムが getchar を呼び出すと、プログラムはユーザーがキーを押すのを待ちます。ユーザーはキーボード バッファーに保存されます。ユーザーが Enter キーを押すまで (キャリッジ リターン文字もバッファーに配置されます)。ユーザーが Enter キーを入力すると、getchar は標準入力ストリームから一度に 1 文字ずつ読み取りを開始します。戻り値getchar 関数の は、ユーザーが入力した最初の文字の ASCII コードです。エラーが発生した場合は、-1 が返され、ユーザーが入力した文字が画面にエコーされます。ユーザーが を押す前に複数の文字を入力した場合、 「Enter, the othercharacters will be left in thekeyboard Buffer area.」(入力すると、他の文字はキーボード バッファー領域に保持され、後続の getchar 呼び出しの読み取りを待機します。言い換えると、後続の getchar 呼び出しは、ユーザーがキーを押すのを待たずに、バッファー内の文字を直接読み取ります。)

3. getch

getch と getchar の基本関数は次のとおりです。違いは、getch はキーボードから直接キー値を取得し、ユーザーが Enter を押すのを待たないことです。ユーザーがキーを押している限り、すぐに戻ります。getch の戻り値は ASCII コードです。ユーザーが入力した値です。エラーが発生した場合は、-1 が返されます。入力された文字は画面にエコーされません。getch 関数は、プログラムのデバッグでよく使用されます。デバッグ中、関連する結果が主要な場所に表示されます。 , その後、getch 関数を使用してプログラムを一時停止します。任意のキーが押されると、プログラムは実行を継続します。

4,gets

関数: から文字列を読み取ります。 stdin ストリームは、改行文字または EOF を受信して​​停止するまで続き、バッファ ポインタが指す文字配列に読み取り結果を格納します。改行文字は読み取った文字列の内容としては使用されず、読み取った改行文字はnull値に変換されて文字列が終了します。

戻り値: 読み込みに成功した場合はパラメータバッファと同じポインタを返し、読み込み処理中にEOF(End-of-File)やエラーが発生した場合はNULLポインタを返します。したがって、戻り値が NULL になった場合は、ferror または feof 関数を使用して、エラーが発生したか、EOF が発生したかを確認してください。

プログラミング学習について詳しく知りたい方は、

php training のコラムに注目してください!

以上がC言語の入力関数とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。