C 言語でユーザー入力プログラムを作成する

CBeginner
オンラインで実践に進む

はじめに

この実験では、C 言語でユーザー入力プログラムを作成します。開発環境をセットアップし、基本的なプログラム構造を書き、名前と年齢のユーザー入力を実装し、その後、プログラムをコンパイルして実行します。目的は、C プログラムでユーザー入力を受け付けて処理する方法を学ぶことです。

この実験では、開発環境のセットアップと新しい C ソースファイルの作成から必要な手順を案内します。次に、main 関数を含む基本的なプログラム構造を追加し、名前と年齢のユーザー入力を受け付ける機能を実装します。最後に、プログラムをコンパイルして実行して結果を確認します。

開発環境をセットアップする

このステップでは、ユーザー入力を読み取る C プログラムを作成するための開発環境をセットアップします。WebIDE を使ってプロジェクトファイルを作成および管理します。

  1. WebIDE 内のターミナルを開きます。デフォルトのプロジェクトディレクトリにいることを確認します。
pwd

出力例:

/home/labex/project

ターミナルに表示されるプロジェクトディレクトリ

このコマンドで、正しい開始ディレクトリにいることが確認できます。/home/labex/projectは、実験活動のデフォルトのワークスペースです。

  1. GCC コンパイラがインストールされていることを確認します。
gcc --version

出力例:

gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

このコマンドで、C プログラムをコンパイルするために使用する GNU コンパイラコレクション(GCC)が利用可能であることを確認します。

基本的なプログラム構造を書く

このステップでは、ユーザー入力機能のために C プログラムの基本構造を作成します。

  1. プロジェクトディレクトリに新しい C ソースファイルを作成します。
touch user_input.c

touchコマンドは、現在のディレクトリに新しい空のファイルuser_input.cを作成します。

  1. ファイルエクスプローラーのファイル名をクリックするか、「ファイルを開く」オプションを使用して、WebIDE エディタでファイルを開きます。
  2. user_input.cに基本的な C プログラム構造を追加します。
#include <stdio.h>

int main() {
    // プログラムコードはここに入ります
    return 0;
}

この基本構造を解説しましょう。

  • #include <stdio.h>は、標準入出力ライブラリを含めるもので、printf()scanf()のような関数を提供します。
  • int main()は、プログラムの実行が始まるメイン関数です。
  • 空のmain()関数は現在、正常な実行を示す 0 を返しています。
  • 波括弧{ }は、メイン関数の本体を定義します。
  1. Ctrl+S を押すか、「ファイル」メニューから「保存」を選択して、ファイルを保存します。

名前のユーザー入力を実装する

このステップでは、入力関数を使用して C プログラムを修正して、ユーザーの名前を読み取り表示するようにします。

  1. WebIDE エディタでuser_input.cファイルを開きます。
  2. プログラムを更新して、名前入力機能を追加します。
#include <stdio.h>

int main() {
    char name[100];

    printf("Enter your name: ");
    scanf("%s", name);

    printf("Hello, %s!\n", name);

    return 0;
}

新しいコードを解説しましょう。

  • char name[100];は、最大 99 文字と null 終端文字を含むことができる文字配列(文字列)を宣言します。
  • printf("Enter your name: ");は、ユーザーに名前を入力するよう促します。
  • scanf("%s", name);は、ユーザー入力から文字列を読み取り、name配列に格納します。
    • %sフォーマット指定子は、文字列を読み取るために使用されます。
    • 単語 1 つの名前に最適ですが、%sを使用したscanf()は、空白文字に遭遇するまで読み取ります。
  • printf("Hello, %s!\n", name);は、入力された名前を使用して挨拶を表示します。
    • フォーマット文字列内の%sは、nameの値に置き換えられます。
  1. Ctrl+S を押すか、「ファイル」メニューから「保存」を選択して、ファイルを保存します。

最終ステップでは、この機能をテストするためにプログラムをコンパイルして実行しますので、お待ちください!

年齢入力を追加する

このステップでは、プログラムを拡張して、ユーザーの名前とともに年齢を読み取り表示するようにします。

  1. WebIDE エディタでuser_input.cファイルを開きます。
  2. プログラムを更新して、年齢入力機能を追加します。
#include <stdio.h>

int main() {
    char name[100];
    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;
}

新しく追加されたコードを解説しましょう。

  • int age;は、ユーザーの年齢を格納するための整数型変数を宣言します。
  • printf("Enter your age: ");は、ユーザーに年齢を入力するよう促します。
  • scanf("%d", &age);は、ユーザー入力から整数を読み取り、age変数に格納します。
    • %dフォーマット指定子は、整数を読み取るために使用されます。
    • ageの前の&は、入力を格納するメモリアドレスを提供します。
  • 最後のprintf()は、出力メッセージに名前と年齢の両方を含めています。
  1. Ctrl+S を押すか、「ファイル」メニューから「保存」を選択して、ファイルを保存します。

プログラムをコンパイルして実行する

この最後のステップでは、C プログラムをコンパイルして実行し、ユーザー入力機能と対話するようにします。

  1. WebIDE 内のターミナルを開き、プロジェクトディレクトリに移動します。
cd ~/project
  1. GCC コンパイラを使ってプログラムをコンパイルします。
gcc user_input.c -o user_input

このコマンドは、user_input.cソースファイルをコンパイルし、user_inputという名前の実行可能ファイルを作成します。コードにエラーがある場合、ここにエラーメッセージが表示されます。

  1. コンパイル済みのプログラムを実行します。
./user_input

実行例:

Enter your name: Alice
Enter your age: 25
Hello, Alice! You are 25 years old.

プログラムを実行すると:

  • まず、名前を入力するよう促されます。
  • 次に、年齢を入力するよう求められます。
  • プログラムは、名前と年齢を含む個別化された挨拶を表示します。
  1. 異なる名前と年齢でプログラムを何度も実行して、その機能がどのように機能するかを確認してみましょう。

まとめ

この実験では、専用のプロジェクトディレクトリを作成し、GCC コンパイラのインストールを確認し、C プログラムの基本構造を書くことで開発環境をセットアップしました。次に、ユーザー入力機能を実装して、プログラムがユーザーの名前と年齢を読み取れるようにしました。最後に、プログラムをコンパイルして実行して結果を確認しました。

この実験で学んだ重要なポイントには、C プログラミングプロジェクトのセットアップ、基本的なプログラム構造の理解、およびscanf()関数を使ったユーザー入力の組み込みが含まれます。これらの基礎スキルは、ユーザーと対話するより複雑な C アプリケーションを構築するために欠かせないものです。