Во-первых, функция gets
предназначена для чтения строк или текста , а не чисел.
Во-вторых, не используйте gets
, так как в нем есть ошибки переполнения буфера. См. C FAQ по языку для получения дополнительной информации. Функция fgets
является более безопасной альтернативой.
В-третьих, вы можете переключиться на потоки C ++ и std::string
. Потоки C ++ более дружественны к типу, чем потоки C.
В-четвертых, fflush
не работает на входных потоках. Функция fflush
предназначена для записи оставшихся данных в потоковых буферах в выходной поток. В C ++ существует метод ignore
, который игнорирует входящие символы до тех пор, пока не будет прочитана новая строка (по умолчанию) или указанный символ (или не достигнут предел).
Надеюсь, это поможет.