C - 入力と出力
入力と言うとき 、それはプログラムにいくつかのデータをフィードすることを意味します。入力は、ファイル形式またはコマンド ラインから行うことができます。 C プログラミングは、所定の入力を読み取り、必要に応じてプログラムに供給する一連の組み込み関数を提供します。
出力と言うとき 、画面、プリンター、または任意のファイルにデータを表示することを意味します。 C プログラミングには、データをコンピューター画面に出力したり、テキスト ファイルまたはバイナリ ファイルに保存したりする一連の組み込み関数が用意されています。
標準ファイル
C プログラミングは、すべてのデバイスをファイルとして扱います。そのため、ディスプレイなどのデバイスはファイルと同じ方法でアドレス指定され、プログラムが実行されると次の 3 つのファイルが自動的に開かれ、キーボードや画面へのアクセスが提供されます。
標準ファイル | ファイル ポインタ | デバイス |
---|---|---|
標準入力 | 標準入力 | キーボード |
標準出力 | 標準出力 | スクリーン |
標準誤差 | stderr | あなたの画面 |
ファイルポインタは、読み書き目的でファイルにアクセスする手段です。このセクションでは、画面から値を読み取る方法と、結果を画面に出力する方法について説明します。
getchar() 関数と putchar() 関数
int getchar(void) 関数は、画面から次に使用可能な文字を読み取り、それを整数として返します。この関数は、一度に 1 文字だけを読み取ります。画面から複数の文字を読み取りたい場合は、このメソッドをループで使用できます。
int putchar(int c) 関数は渡された文字を画面に表示し、同じ文字を返します。この関数は、一度に 1 文字だけを挿入します。画面に複数の文字を表示する場合は、このメソッドをループで使用できます。次の例を確認してください-
#include <stdio.h> int main( ) { int c; printf( "Enter a value :"); c = getchar( ); printf( "\nYou entered: "); putchar( c ); return 0; }
上記のコードをコンパイルして実行すると、テキストの入力を待ちます。テキストを入力してEnterキーを押すと、プログラムは次のように進み、1文字だけを読み取り、次のように表示します-
$./a.out Enter a value : this is test You entered: t
gets() 関数と puts() 関数
char *gets(char *s) 関数は stdin から行を読み取ります s が指すバッファに 終了改行または EOF (End of File) まで)。
int puts(const char *s) 関数は文字列 's' と 'a' の末尾の改行を stdout に書き込みます .
注: gets() 関数の使用は推奨されていませんが、gets の代わりに fgets() を使用する必要があります。
#include <stdio.h> int main( ) { char str[100]; printf( "Enter a value :"); gets( str ); printf( "\nYou entered: "); puts( str ); return 0; }
上記のコードをコンパイルして実行すると、テキストの入力を待ちます。テキストを入力してエンターを押すと、プログラムは進行し、行全体を最後まで読み取り、次のように表示します-
$./a.out Enter a value : this is test You entered: this is test
scanf() および printf() 関数
int scanf(const char *format, ...) 関数は、標準入力ストリーム stdin から入力を読み取ります フォーマットに従ってその入力をスキャンします
int printf(const char *format, ...) 関数は出力を標準出力ストリーム stdout に書き込みます 提供された形式に従って出力を生成します。
フォーマット 単純な定数文字列を指定できますが、%s、%d、%c、%f などを指定して、文字列、整数、文字、または浮動小数点数をそれぞれ出力または読み取ることができます。要件に基づいて使用できる他の多くの書式設定オプションが利用可能です。概念をよりよく理解するために、簡単な例に進みましょう −
#include <stdio.h> int main( ) { char str[100]; int i; printf( "Enter a value :"); scanf("%s %d", str, &i); printf( "\nYou entered: %s %d ", str, i); return 0; }
上記のコードをコンパイルして実行すると、テキストの入力を待ちます。テキストを入力してEnterキーを押すと、プログラムが進み、入力を読み取り、次のように表示します-
$./a.out Enter a value : seven 7 You entered: seven 7
ここで、scanf() は、%s および %d を提供したのと同じ形式の入力を想定していることに注意してください。つまり、「文字列整数」のような有効な入力を提供する必要があります。 「string string」または「integer integer」を指定すると、間違った入力と見なされます。第 2 に、文字列の読み取り中に、scanf() はスペースに遭遇するとすぐに読み取りを停止するため、「これはテストです」は scanf() の 3 つの文字列です。
C言語