C言語初心者必見!getchar関数の使い方を5ステップで理解しよう

C言語のgetchar関数を使う初心者が読むべき記事C言語
この記事は約5分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

C言語はコンピュータのプログラミング言語の一つで、その中でも基礎的な部分とされる機能の一つがgetchar関数です。

この記事では、C言語初心者向けに、getchar関数の詳細な使い方を5つのステップと詳細なサンプルコードを通じて解説します。

あなたもこの記事を通じて、プログラミングに必要な基本をしっかりと理解できることでしょう。

●C言語とgetchar関数の概要

○C言語の基本

C言語は汎用的なプログラミング言語で、システムソフトウェアの開発からアプリケーションソフトウェアの開発まで、幅広い用途で活用されています。

その中で、特に重要な基本機能の一つが、文字を一つずつ読み込むためのgetchar関数です。

○getchar関数とは

getchar関数は、C言語の標準入力(主にキーボード)から文字を一つ読み取り、そのASCIIコードを返す関数です。

具体的な使用例とその詳細な説明、また注意点をこれから解説していきます。

●getchar関数の基本的な使い方

○getchar関数の使用例

□サンプルコード1:getchar関数の基本的な使い方

#include <stdio.h>

int main() {
    int c;
    printf("文字を入力してください: ");
    c = getchar();
    printf("入力した文字: %c\n", c);
    return 0;
}

このコードでは、まず標準ライブラリのstdio.hをインクルードしています。

これによりprintfやgetcharといった標準入出力関数を利用できます。

main関数の中では、変数cを宣言し、その後にgetchar関数を使ってキーボードから入力された文字のASCIIコードを取得しています。

そして、その文字を表示するためにprintf関数を使っています。

●getchar関数の応用例

○サンプルコード2:getchar関数を使った文字の入力と表示

#include <stdio.h>

int main() {
    int c;
    printf("文字を入力してください(EOFで終了): ");
    while ((c = getchar()) != EOF) {
        putchar(c);
    }
    return 0;
}

このコードでは、getchar関数とputchar関数を組み合わせて、入力された文字をそのまま出力しています。

getchar関数で読み込んだ文字を変数cに格納し、その値がEOF(End Of File)でない限り、putchar関数を使ってその文字を出力します。

EOFは、Ctrl+D(UNIX系)またはCtrl+Z(Windows系)を入力することで生成できます。

○サンプルコード3:getchar関数を使った文字列の入力と表示

#include <stdio.h>

int main() {
    int c;
    printf("文字列を入力してください(EOFで終了): ");
    while ((c = getchar()) != EOF) {
        putchar(c);
    }
    return 0;
}

このコードは、前述のサンプルコード2と同じ動作をしますが、ここでは文字列(複数の文字)を入力することを想定しています。

入力した文字列をそのまま出力します。

文字列はエンターキーを押すまでの連続した文字のことを指します。

●getchar関数の注意点と対処法

○注意点

getchar関数を使用する際の注意点としては、getchar関数はバッファを経由して標準入力から文字を取得するため、エンターキーを押すまで実際には文字を読み取らないということが挙げられます。

そのため、プログラムが進行しない場合があります。

○対処法

これを解消するためには、getchar関数を使用した後に、バッファに残った改行文字を読み飛ばす処理を追加する方法があります。

具体的なコードは次の通りです。

#include <stdio.h>

int main() {
    int c;
    printf("文字を入力してください: ");
    c = getchar();
    while (getchar() != '\n');
    printf("入力した文字: %c\n", c);
    return 0;
}

このコードでは、getchar関数を使って文字を取得した後、while文で改行文字が来るまでgetchar関数を繰り返し実行しています。

これにより、バッファに残った改行文字を読み飛ばし、プログラムが順調に進行するようになります。

●getchar関数のカスタマイズ方法

○サンプルコード4:getchar関数のカスタマイズ例

#include <stdio.h>

int main() {
    int c;
    printf("大文字を入力してください: ");
    c = getchar();
    while (getchar() != '\n');
    if ('A' <= c && c <= 'Z') {
        printf("入力した文字: %c\n", c);
    } else {
        printf("エラー:大文字を入力してください。\n");
    }
    return 0;
}

このコードは、入力された文字が大文字かどうかを判定し、大文字でなければエラーメッセージを表示するというカスタマイズ例です。

これにより、getchar関数を用いて特定の条件を満たす入力のみを受け付けるようなプログラムを作成することが可能です。

まとめ

以上、C言語のgetchar関数の詳細な使い方について解説しました。

基本的な使い方から、応用例、注意点と対処法、さらにはカスタマイズ方法まで、5つのステップを通じて理解を深めることができたでしょう。

これらの知識を活かして、C言語のコーディングに挑戦してみてください。