Это правильный способ очистки входного потока C?

Ну, я много занимался поиском в Google и здесь о том, как правильно очистить поток ввода. Все, что я слышу, это смешанные аргументы о том, что fflush () не определена для входного потока, и некоторые говорят, что просто так делают, а другие просто говорят, не делайте этого, мне не очень повезло с поиском очевидного эффективного / правильный способ сделать так, чтобы с этим согласилось большинство людей .. Я довольно новичок в программировании, поэтому я еще не знаю всех синтаксисов / трюков языка, поэтому мой вопрос, какой путь является наиболее эффективным / правильным решением очистить входной поток C ??

Использоватьgetchar() дважды, прежде чем пытаться получить больше информации?

Просто используйтеfflush() функция на входе? или же

Вот как я думал, что должен это сделать.

void clearInputBuf(void);  
void clearInputBuf(void) 
{ 
      int garbageCollector; 
      while ((garbageCollector = getchar()) != '\n' && garbageCollector != EOF) 
      {}
}

Поэтому, когда мне нужно прочитать новый scanf () или использовать getchar (), чтобы приостановить программу, я просто вызываю clearInputBuf. Так какой же будет наилучший выход из трех решений или есть еще лучший вариант?

Ответы на вопрос(4)

Ваш ответ на вопрос