標準エラーstderr | あなた 画面 | |
---|
ファイルポインタはファイルにアクセスする方法であり、画面から値を読み取って結果を画面に出力する方法を説明します。
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 キーを押すと、プログラムは続行され、単一の文字列のみを読み取ります。次のように表示される文字:
$./a.out<b>Enter a value :</b> this is test<b>You entered:</b> t
char *gets(char *s) この関数は、stdinからsが指すバッファにターミネータまで行を読み込みます。またはEOF。
int puts(const char *s) 関数は、文字列 s と末尾の改行文字を stdout に書き込みます。
#include <stdio.h>int main( ){ char str[100];
printf( "Enter a value :");
gets( str );
printf( "\nYou entered: ");
puts( str ); return 0;}
上記のコードがコンパイルされて実行されると、テキストの入力を待ちます。テキストを入力して Enter キーを押すと、プログラムは続行され、行末まで 1 行全体を読み取ります。以下に示す:
$./a.out<b>Enter a value :</b> this is test<b>You entered:</b> This is test
int scanf(const char *format, ...) 関数は、標準入力ストリーム stdin から入力を読み取り、提供された に従って入力を参照しますフォーマット 。
int printf(const char *format, ...) 関数は、出力を標準出力ストリーム stdout に書き込み、指定された形式に従って出力を生成します。
format は単純な定数文字列にすることができますが、%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<b>Enter a value :</b> seven 7<b>You entered:</b> seven 7
ここで、scanf() は入力が指定した %s および %d と同じ形式であることを期待していることに注意してください。つまり、有効な値を指定する必要があります。 「string integer」のような入力で、「string string」または「integer integer」を指定すると、不正な入力とみなされます。さらに、文字列を読み取るとき、scanf() はスペースに遭遇するとすぐに読み取りを停止するため、「this is test」は scanf() に 3 つの文字列になります。