1

この非常に優れたサイトで getchar() 関数に関するすべてを検索すると、次の投稿が見つかりました

#include <stdio.h>

int main()
{
    int value;
    printf("1. option 1.\n2. option 2.\n3. option 3.\n4. Exit\n\nMake an option: ");
    scanf("%d", &value);
    switch (value)
    {
        case 1:
            printf("you selected the option 1.");
            break;
        case 2:
            printf("you selected the option 2.");
            break;
        case 3:
            printf("you selected the option 3.");
            break;
        case 4:
            printf("goodbye");
            break;
        default:
            printf("thats not an option");
            break;
    }
    getchar();//here is the question,why it's useful ?
    return 0;
}

私はプログラム全体を理解しており、呼び出されるたびに getchar がテキスト ストリームから次の入力文字を読み取り、それを値として返すことを理解しています。つまり、その後

c = getchar();

変数 c には入力の次の文字が含まれます。通常、文字はキーボードから入力されます。

しかし、ここで問題があります。なぜプログラマーはプログラムの最後で getchar() を呼び出したのでしょうか?

4

3 に答える 3

4

この方法は、特にコンソール アプリケーションで使用されます。これにより、キーを押すまでプログラムが停止せず、出力を読み取ることができます。通常、プログラムの実行が終了するとコンソールが閉じます

于 2011-09-10T22:27:48.027 に答える
1

通常、コンソール アプリでは、IDE で作業してコードを実行すると、ターミナル ウィンドウがポップアップしてコードが実行され、メイン関数が終了するとすぐにターミナル ウィンドウも消え、ユーザーは最後の出力を見ることができません。画面が待機するようにする必要があります。1 つの方法は、入力を待ってプログラムが終了しないようにすることです。一部の人々は、最後にバッファリングされていない入力関数を使用しているため、キーを押すたびに、関数はそれを読み取り、すぐに戻ります。この場合getchar、バッファ付き入力関数を使用します。この場合、画面の検査が終了したら、任意の文字を押して Enter キーを押すと、関数から戻り、その後プログラムが終了します。scanfまたは他の方法で画面を保持することもできます。

デバッグに適しています。最終リリースから削除してください。

于 2011-09-11T06:35:58.213 に答える
1

最後の getchar() 関数は、アプリケーションが終了する前にキーが押されるのを待つためにあります。

于 2011-09-10T22:17:56.280 に答える