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

时间:2018-12-12 20:31:25

标签: c getchar

有没有办法我可以使用getchar()读取字符并使用另一个getchar()读取相同字符?

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

先谢谢!

1 个答案:

答案 0 :(得分:3)

是的,您可以使用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'!