Cキーボードからのデータ入力scanf

1319 ワード

以前よく使われていたprintfは複数のタイプのデータを出力することができましたが、puts出力文字列、putchar出力単一文字の例を2つ紹介します.
putchar('z');
putchar(10);

出力がある以上、入力もあるはずです.C言語では,scanfを用いてキーボードからユーザの入力データを取得する.scanfは実はscan formatの略です.簡単な例を見てみましょう
#include 

int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    printf("a-b=%d
", (a-b)); return 0; }

実行結果:
100 20  ↙
100-20=80

キーボードから100、スペースを入力し、20を入力して車に戻ります(↙戻ることを表す)と、2つの数が減算された結果が表示されます.フォーマット制御文字列があり、変数リストがあります.しかし、scanfの変数の前に&記号をつけます;&メモリ内の変数のアドレスを取得するためのアドレス取り文字と呼ばれます.
getchar単一文字のみを受け入れる場合はgetcharを使用することを選択できます.例
#include 
int main()
{
    char a, b, c;

    a=getchar();
    printf("a='%c'
", a); b=getchar(); printf("b='%c'
", b); c=getchar(); printf("c='%c'
", c); return 0; }

実行結果:
XYZ↙
a='X'
b='Y'
c='Z'

または、次のように入力します.
X↙
a='X'
b='
'
Y↙
c='Y'

2回目がこのような結果になったのは、getcharにもバッファが付いているからです.Xを入力して戻り、最初のgetcharが'X'に読み込まれ、次に2番目のgetcharが戻り改行文字に読み込まれ、3番目のgetcharになるとバッファにデータがないので、ユーザーの入力を待つことになります.