scanf
- плохой выбор для интерактивного ввода данных пользователем.Тем более, что если пользователь наберет что-то, чего scanf
не ожидает, этот ввод останется во внутреннем буфере ввода и, скорее всего, вызовет проблемы в следующих scanf
с дальше в программе.
Я быпойти на что-то вроде этого:
#include <stdio.h>
int main(int argc, char * argv[])
{
float n;
char input[100];
for (;;) {
fgets(input, sizeof(input), stdin);
if (sscanf(input, "%f", &n) != 1)
break;
printf("User input = %f\n", n);
}
printf("Last line entered by user: %s", input);
}