954,479 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?

Read a Floating-Point Value from the User, Part 3

0
By Dave Sinkula on Nov 21st, 2006 9:44 am

This snippet uses strtod to be a little more stringent.

#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
*/

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

bemboysms
Newbie Poster
2 posts since Jul 2009
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You