C言語

【C言語】第1章第8回:入力と出力:scanfとprintfの使い方

C言語では、ユーザーとの対話を可能にする入力と出力が非常に重要です。この章では、入力に使用するscanf関数と、出力に使用するprintf関数の使い方を、具体例を交えて詳しく解説します。

1. printf関数とは?

printf関数は、指定されたテキストや変数の値をコンソールに出力するために使用されます。

基本構文

printf("フォーマット文字列", 引数1, 引数2, ...);

例:

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

このプログラムは、画面に「Hello, World!」と表示します。

フォーマット指定子

フォーマット指定子を使用することで、さまざまなデータ型を出力できます:

フォーマット指定子データ型
%d整数printf("%d", 10);
%f浮動小数点数printf("%f", 3.14);
%c文字printf("%c", 'A');
%s文字列printf("%s", "Hello");

2. scanf関数とは?

scanf関数は、ユーザーからの入力を受け取るために使用されます。

基本構文

scanf("フォーマット文字列", &変数1, &変数2, ...);

入力されたデータは指定された変数に格納されます。&(アドレス演算子)が重要です。

例:整数の入力

#include <stdio.h>

int main() {
    int number;
    printf("Enter a number: ");
    scanf("%d", &number); // 入力をnumberに格納
    printf("You entered: %d\n", number);
    return 0;
}

解説:ユーザーが入力した整数を変数numberに格納し、それを出力しています。

3. 入力と出力の組み合わせ

scanfprintfを組み合わせることで、ユーザーと対話的にデータを操作することができます。

例:2つの数値の加算

#include <stdio.h>

int main() {
    int a, b, sum;
    printf("Enter two numbers: ");
    scanf("%d %d", &a, &b); // 2つの整数を入力
    sum = a + b; // 加算
    printf("The sum of %d and %d is %d\n", a, b, sum);
    return 0;
}

解説:

  • scanfで2つの整数を受け取る。
  • その結果をsumに格納し、printfで出力。

4. 複数のデータ型を扱う

例:名前と年齢の入力と出力

#include <stdio.h>

int main() {
    char name[50];
    int age;

    printf("Enter your name: ");
    scanf("%s", name); // 文字列を入力

    printf("Enter your age: ");
    scanf("%d", &age); // 整数を入力

    printf("Hello, %s! You are %d years old.\n", name, age);
    return 0;
}

解説:このプログラムでは、名前(文字列)と年齢(整数)を入力し、それを出力しています。

5. 練習問題

以下の課題に挑戦して、scanfprintfの使い方を練習してください:

  1. 2つの浮動小数点数を入力し、それらの積を計算して出力するプログラムを作成してください。
  2. 文字を入力し、それを大文字に変換して出力するプログラムを書いてみましょう。
  3. 文字列を入力し、逆順に出力するプログラムを作成してください。

6. まとめ

scanfprintfは、C言語でユーザーと対話するための基本機能です。これらの使い方を理解することで、よりインタラクティブなプログラムを作成できるようになります。たくさん練習して、スキルを磨いていきましょう!