Делаем функцию типа getchar, например для avr-libc@gcc
Код
#include <stdio.h>
static FILE my_stdin = FDEV_SETUP_STREAM(NULL, getchar,
_FDEV_SETUP_READ);
int getchar ( FILE * __stream )
{
}
И туда пишем всю обработку. При таймауте или иной бяке должна возвращать -1
main() выглядит так
Код
int main(void)
{
stdin=my_stdin;// теперь можно использовать scanf()
// blah-blah-blah
return 0;
}
В линкере нужно подключить нужную либу (варианты минимальный или полный)