Я использую MinGW для Windows 7 для компиляции файлов C.scanf проблема при чтении double
Моя проблема - это странное поведение с scanf()
, чтобы читать double
с пользовательского ввода.
Мой код:
int main() {
double radius = 0;
double pi = 3.14159;
scanf("%lf \n", &radius); // after the input, it continues waiting...
radius = ((radius * radius) * pi);
printf("A=%.4lf\n", radius);
return 0;
}
Когда я запускаю эту программу необходимо ввести значение, давайте предположим, что 100.64
, нормальное поведение нажмите клавишу ввода, и программа должна продолжить и показать результат, но программа остается в ожидании для большего ввода. Если я набираю 0 и снова нажимаю клавишу, программа продолжает работать нормально.
>area.exe
100.64 <-- doesn't proceed after press enter
0 <-- needs input another value, then press enter
A=31819.3103 <-- the result
Почему scanf не работает с первым входом? Зачем это нужно?
Обс: в моей Linux это не происходит.
gcc --version
gcc (tdm64-1) 4.9.2
Могу ли я предложить 'int main()' -> 'int main (void)'? –
@SouravGhosh Почему? есть разница в этом случае? –
На самом деле, более поздний из них рекомендуется стандартами 'C'. –