有没有办法我可以使用getchar()读取字符并使用另一个getchar()读取相同字符?
例如,用户给出5,第一个getchar()读取5,然后第二个getchar()重新读取5。
先谢谢!
答案 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'!