Я написал эту программу для получения двойного ввода:
double n;
scanf("%lf",&n);
while(fgetc(stdin)!='\n')
return 0;
printf("%lf",n);
Предполагается, что эта программа принимает двойные входные данные. При условии, что %lf
является спецификатором формата для double
в scanf
, я использовал его. Но для ввода цифры, за которой следует e. например (3e), ввод читается без ошибок. Но во время обработки той же переменной он отбрасывает e
и учитывает только 3
, как показано оператором printf
. В чем причина такого поведения?