Это правильный способ очистки входного потока C?
Ну, я много занимался поиском в Google и здесь о том, как правильно очистить поток ввода. Все, что я слышу, это смешанные аргументы о том, что fflush () не определена для входного потока, и некоторые говорят, что просто так делают, а другие просто говорят, не делайте этого, мне не очень повезло с поиском очевидного эффективного / правильный способ сделать так, чтобы с этим согласилось большинство людей .. Я довольно новичок в программировании, поэтому я еще не знаю всех синтаксисов / трюков языка, поэтому мой вопрос, какой путь является наиболее эффективным / правильным решением очистить входной поток C ??
Использоватьgetchar()
дважды, прежде чем пытаться получить больше информации?
Просто используйтеfflush()
функция на входе? или же
Вот как я думал, что должен это сделать.
void clearInputBuf(void);
void clearInputBuf(void)
{
int garbageCollector;
while ((garbageCollector = getchar()) != '\n' && garbageCollector != EOF)
{}
}
Поэтому, когда мне нужно прочитать новый scanf () или использовать getchar (), чтобы приостановить программу, я просто вызываю clearInputBuf. Так какой же будет наилучший выход из трех решений или есть еще лучший вариант?