Cトリックungetc関数フォールバック文字

序文

ungetc 関数は、後で読み取れるように文字を入力ストリーム (通常はファイル ストリームまたは標準入力ストリーム) にプッシュバックするために使用される C 言語標準ライブラリの関数です。その機能は、入力ストリームの先頭に文字を挿入することです。これにより、次回文字が読み取られるときに、押し戻された文字が最初に読み取られ、その後に後続の文字が読み取られます。

ungetc 関数は通常、文字を読み取った後に期待を満たさない文字を見つけ、後で再処理するために入力ストリームに戻す必要があるなど、特定の状況を処理するために使用されます。その関数プロトタイプは次のとおりです。

int ungetc(int c, FILE *stream);

で:

c はプッシュバックする文字で、通常は整数として渡され、(int) キャストを使用して整数に変換できます。
stream は文字をプッシュバックする入力ストリームで、通常はオープン ファイル ストリームや標準入力ストリーム (stdin) などです。
ungetc 関数の戻り値は、プッシュバックされた文字の整数表現、またはエラーの場合は EOF (通常は -1) です。

以下は、ungetc 関数を使用して文字を入力ストリームにプッシュする方法を示す簡単な例です。

#include <stdio.h>

int main() {
    int ch;

    // 从标准输入流读取字符
    printf("Enter a character: ");
    ch = getchar();

    // 检查字符是否是小写字母
    if (ch >= 'a' && ch <= 'z') {
        // 如果是小写字母,则将字符推回到输入流
        ungetc(ch, stdin);
        printf("You entered a lowercase letter: %c\n", ch);
    } else {
        printf("You did not enter a lowercase letter.\n");
    }

    return 0;
}

この例では、ユーザーが小文字を入力すると、プログラムはそれを入力ストリームにプッシュして戻し、その文字を再度読み取り、適切なメッセージを出力します。このように、ungetc 関数を使用すると、ファイル ポインタを移動せずに文字を再読み取ることができます。

おすすめ

転載: blog.csdn.net/wniuniu_/article/details/132698455