Resetting stdin after EOF (C)
I have a piece of code that looks like this:
---example.c---
Code:
#include <stdio.h>
int main() {
char c;
while ((c = getchar()) && (c != EOF))
;
putchar('\n');
c = getchar();
printf("%c\n", c);
}
Entering input from the keyboard, this program works fine.
However, if I then redirect input to this program (e.g. dmesg | ./example), then I get a garbage character printed to the console, and the program does not wait for input from the keyboard.
I assume this is something to do with resetting stdin - how can I pass input back to the keyboard?
Thanks,
Rob