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'!
有没有一种方法可以让我用 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'!