【C言語】scanf関数の使い方についてわかりやすく詳しく解説

この記事では、C言語のscanf関数の使い方について詳しく解説します。

scanf関数を使うことで、ユーザーからの入力をプログラム内で受け取ることができます。

さらに、複数の変数への入力や入力の制限、フォーマット指定子の活用など、応用的な使い方も学ぶことができます。

また、注意点やトラブルシューティングについても解説しますので、scanf関数を正しく使いこなすための基礎知識を身につけることができます。

目次から探す

scanf関数とは

scanf関数は、C言語で標準入力からデータを受け取るために使用される関数です。

scanf関数を使用することで、ユーザーからの入力をプログラム内で受け取ることができます。

scanf関数の概要

scanf関数は、以下のような形式で使用されます。


scanf("書式指定子", &変数);

scanf関数は、指定された書式指定子に従って、標準入力からデータを読み込みます。

読み込んだデータは、指定された変数に格納されます。

scanf関数の基本的な使い方

scanf関数を使用する際には、以下のポイントに注意する必要があります。

書式指定子の指定

scanf関数では、読み込むデータの型に応じて適切な書式指定子を指定する必要があります。

例えば、整数を読み込む場合は”%d”、文字列を読み込む場合は”%s”を使用します。

変数のアドレスの指定

scanf関数では、読み込んだデータを格納する変数のアドレスを指定する必要があります。

変数のアドレスを指定するためには、変数名の前に”&”を付けます。

以下に、scanf関数の基本的な使い方の例を示します。


#include <stdio.h>
int main() {
    int num;
    printf("整数を入力してください: ");
    scanf("%d", &num);
    printf("入力された整数は%dです。\n", num);
    return 0;
}

上記のプログラムでは、ユーザーに整数の入力を促し、入力された整数を表示する処理が行われます。

scanf関数を使用して、ユーザーからの入力を受け取っています。

整数を入力してください: 10
入力された整数は10です。

以上が、scanf関数の概要と基本的な使い方についての説明です。

scanf関数を適切に使用することで、ユーザーからの入力をプログラム内で利用することができます。

scanf関数の応用的な使い方

scanf関数は、単純な入力処理だけでなく、さまざまな応用が可能です。

以下では、複数の変数への入力、入力の制限とバリデーション、フォーマット指定子の活用について説明します。

複数の変数への入力

scanf関数を使用すると、1つの入力で複数の変数に値を格納することができます。

具体的な例を見てみましょう。


#include <stdio.h>
int main() {
    int num1, num2;
    
    printf("2つの整数を入力してください:");
    scanf("%d %d", &num1, &num2);
    
    printf("入力された数値は %d と %d です。\n", num1, num2);
    
    return 0;
}

上記のプログラムでは、ユーザーに2つの整数を入力してもらい、それぞれの値をnum1num2に格納しています。

scanf関数のフォーマット指定子%dを使用し、変数のアドレスを&演算子で指定することで、複数の変数への入力が可能となります。

入力の制限とバリデーション

scanf関数を使用する際に、入力の制限やバリデーションを行うこともできます。

例えば、特定の範囲内の値のみを受け付けるようにする場合、条件文を組み合わせて制限を設けることができます。


#include <stdio.h>
int main() {
    int age;
    
    printf("年齢を入力してください(0以上120以下):");
    scanf("%d", &age);
    
    if (age >= 0 && age <= 120) {
        printf("入力された年齢は %d 歳です。\n", age);
    } else {
        printf("無効な年齢です。\n");
    }
    
    return 0;
}

上記のプログラムでは、ユーザーに年齢を入力してもらい、その値が0以上120以下であるかどうかを判定しています。

条件文を使用して、制限を設けることで、無効な値が入力された場合にはエラーメッセージを表示するようにしています。

フォーマット指定子の活用

scanf関数では、フォーマット指定子を使用することで、入力の形式を制御することができます。

例えば、文字列や浮動小数点数など、異なるデータ型の入力を受け付けることができます。


#include <stdio.h>
int main() {
    char name[20];
    float height;
    
    printf("名前を入力してください:");
    scanf("%s", name);
    
    printf("身長を入力してください(m単位):");
    scanf("%f", &height);
    
    printf("%sさんの身長は %.2f mです。\n", name, height);
    
    return 0;
}

上記のプログラムでは、ユーザーに名前と身長を入力してもらい、それぞれの値をnameheightに格納しています。

%sは文字列を、%fは浮動小数点数を受け付けるフォーマット指定子です。

また、%.2fは小数点以下2桁まで表示することを意味しています。

以上がscanf関数の応用的な使い方の一部です。

これらの応用を活用することで、より柔軟な入力処理を実現することができます。

1 2
目次から探す