[C言語]scanfの読み取り方の違い

プログラミング
<<プログラミングを学びたい方はこちら!>>

scanfでの数値の読み取り方の違い

キーボードから入力するにはscanfを利用します。
今回はscanfの挙動を見ていきます。

サンプルコード

コードは以下の通り (/**/で囲まれた部分は説明文のためコードではないです)

#include <stdio.h>

int main(){
    int a,b,c,d;

    /*読み込む2つの値を「,」で区切った場合*/
    printf("aとbの数値を入力:");
    scanf("%d,%d",&a,&b);
    printf("a=%d,b=%d\n",a,b);

    /*読み込む2つの値を「 」で区切った場合*/
    printf("cとdの数値を入力:");
    scanf("%d %d",&c,&d);
    printf("c=%d,d=%d\n",c,d);

    return 0;
}

scanf内で「,」で分ける場合と「 」空白で分ける場合で、キーボードからの入力方法が異なります。

実行結果

実行結果は以下の通り

aとbの数値を入力(「,」区切り):3,4
a=3,b=4
cとdの数値を入力(「 」空白区切り):3 4
c=3,d=4

指示と逆の入力をすると上手く読み込むことができません。

aとbの数値を入力(「,」区切り):2 7
a=2,b=3117056
cとdの数値を入力(「 」空白区切り):3,8
c=7,d=3

おすすめ参考書紹介

「苦しんで覚えるC言語」はひとつひとつの要素をスローモーションでゆっくり確実に解説していることが特徴です。真面目にC言語を覚えたい初心者向けで、コツコツと確実に力をつけていくことができます。

「スッキリわかるC言語入門 第2版 (スッキリわかる入門シリーズ)」は「苦しんで覚えるC言語」に比べより親しみやすいイラストや構成で苦手意識を持ちにくい工夫が施されています。

コメント

タイトルとURLをコピーしました