Очистка стандартного ввода в C, когда он может быть или не быть пустым
Я студент-программист, ищу способ избавиться от персонажей, которые могут зависать в stdin. Я попробовал технику, которая была дана здесь в различных формах, где вы делаете что-то вроде этого:
void clearStdIn(void)
{
char c;
while((c = getchar()) != '\n' && c != EOF)
/* discard */ ;
}
Кажется, проблема в том, что если в начале ничего не находится в stdin, эта функция бездельничает, ожидая, пока пользователь нажмет ввод, прежде чем поток управления сможет двигаться дальше. Что я должен делать?