Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語における文字の読み書きとは?getche()・putchar()の基本を解説

C言語における文字入出力の基本

C言語には、コンソール上で1文字単位の入出力を行うためのシンプルな関数が用意されています。代表的なものが、キーボードから1文字を読み取る getche() と、画面に1文字を出力する putchar() です。

  • getche() は、キーが押されるまで待機し、押されたキーの値(文字コード)を返します。押されたキーは自動的に画面へエコー表示されます。

  • putchar() は、引数として渡された文字を、現在のカーソル位置に画面へ出力します。

両者のプロトタイプ宣言は以下のとおりです。

int getche(void);
int putchar(int c);

これらの関数を使用するには、ヘッダーファイル「CONIO.H」をインクルードする必要があります。

サンプルプログラム:大文字と小文字を反転して表示する

次の例では、キーボードから読み取った文字の大文字と小文字を反転させて表示します。つまり、大文字は小文字に、小文字は大文字に変換されて出力されます。

プログラムはピリオド(.)が入力されると終了します。islower() ライブラリ関数は、引数が小文字であれば真(true)を、そうでなければ偽(false)を返す関数で、これを使用するためにヘッダーファイル「CTYPE.H」が必要です。

以下が文字の読み書きを行うCプログラムの例です。

#include <stdio.h>
#include <conio.h>
#include <ctype.h>

int main(void) {
    char ch;
    printf("文字を入力してください(ピリオドで終了)\n");
    do {
        ch = getche();
        if (islower(ch))
            putchar(toupper(ch));
        else
            putchar(tolower(ch));
    } while (ch != '.'); /* ピリオドで終了 */
    return 0;
}

実行結果

上記のプログラムを実行すると、次のような結果になります。

文字を入力してください(ピリオドで終了)
tTuUtToOrRiIaAlLsS..

getche() のバリエーション:getchar() と getch()

getche() には、動作の異なる重要なバリエーションが2つあります。

① getchar()

  • getchar() の注意点は、Enterキー(改行コード)が押されるまで入力をバッファリングする点です。つまり、キーを押してもすぐにプログラムへ渡されません。

  • getchar() を使用する場合は、ヘッダーファイル「STDIO.H」をインクルードします。

② getch()

  • より実用的なバリエーションが getch() です。getche() とほぼ同じ動作をしますが、入力した文字が画面にエコー表示されない点が異なります。パスワード入力のように、画面に文字を表示したくない場合に便利です。ヘッダーファイルは「CONIO.H」を使用します。

  1. C言語のアルゴリズムとフローチャートとは?基礎をわかりやすく解説

    アルゴリズムとは、問題を解決するために役立つ、段階的に実行される手順のことです。この手順を英語のような文章形式で記述したものを「疑似コード(PSEUDO CODE)」と呼びます。アルゴリズムが満たすべき5つの特性正しいアルゴリズムには、以下の5つの特性が備わっている必要があります。入力(Input)出力(Output)有限性(Finiteness)明確性(Definiteness)有効性(Effectiveness)アルゴリズムの例3つの数値の平均を求めるアルゴリズムは、以下のように記述できます。開始する3つの数値 a、b、c を読み込む合計 = a + b + c を計算する平均 = 合計

  2. C言語の型変換入門:暗黙的変換と明示的変換(キャスト)の違いを徹底解説

    あるデータ型を別のデータ型へ変換することを「型変換(type conversion)」と呼びます。C言語における型変換には、主に以下の2種類があります。 暗黙的な型変換(implicit conversion) 明示的な型変換(explicit conversion) 暗黙的な型変換とは 演算対象(オペランド)同士のデータ型が異なる場合、コンパイラが自動的に行う型変換です。 プログラマが特に指示しなくても、小さいデータ型から大きいデータ型への変換が自動的に実行されます。これを「型の昇格」とも呼びます。 int i,x; float f; double d; long int l;