C- getchar() 重新读取字符?

C- getchar() re-read characters?

有没有一种方法可以让我用 getchar() 读取一个字符并用另一个 getchar() 读取同一个字符?

例如,用户给出 5,第一个 getchar() 读取 5,然后第二个 getchar() 重新读取 5。

提前致谢!

是的,您可以使用 ungetc() 将字符放回输入流中。

这是一个示例程序:

#include <stdio.h>

int main(void) {
    printf("Type something: ");
    int c = getchar();
    printf("Ok, you typed '%c'. Putting it back...\n", c);
    ungetc(c, stdin);
    printf("Reading it again...\n");
    c = getchar();
    printf("Still '%c'. Putting it back again...\n", c);
    ungetc(c, stdin);
    printf("Reading it again...\n");
    c = getchar();
    printf("Still '%c'!\n", c);
}

运行它:

Type something: smackflaad
Ok, you typed 's'. Putting it back...
Reading it again...
Still 's'. Putting it back again...
Reading it again...
Still 's'!