#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int mygetd(double *result)
{
   char *end, buff [ 32 ];
   return fgets(buff, sizeof buff, stdin) && !isspace(*buff) &&
          (*result = strtod(buff, &end)), ( *end == '\n' || *end == '\0' );
}

int main(void)
{
   double value = -12.3;
   do
   {
      fputs("Enter a floating-point number: ", stdout);
      fflush(stdout);
   } while ( !mygetd(&value) );
   printf("value = %g\n", value);
   return 0;
}

/* my output
Enter a floating-point number: one
Enter a floating-point number:
Enter a floating-point number: f12.3
Enter a floating-point number: -45.67
value = -45.67
 
Enter a floating-point number: -12.3f
Enter a floating-point number:    125 help
Enter a floating-point number: 1.2.3
Enter a floating-point number: 1.23
value = 1.23
*/
2
Contributors
1
Reply
4
Views
10 Years
Discussion Span
Last Post by bemboysms
-2

how about reading a temperature in degree celsius and then conbert it to fahrenheit?

Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.