home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_10_10 / 1010026a < prev    next >
Text File  |  1992-08-10  |  566b  |  31 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3.       
  4. #define BUFSIZE 64
  5. #define MAXBITS 15      /* Largest value allowed is 32767 */
  6.       
  7. int fgetb(FILE *fp)
  8. {
  9.     int i;
  10.     unsigned sum = 0, value = 1;
  11.     char buf[BUFSIZE];
  12.       
  13.     if (!fp || fscanf(fp," %[01]",buf) != 1 ||
  14.       strlen(buf) > MAXBITS)
  15.         return EOF;
  16.     for (i = strlen(buf) - 1; i >= 0; --i)
  17.     {
  18.         if (buf[i] == '1')
  19.             sum += value;
  20.         value *= 2;
  21.     }
  22.     return sum;
  23. }
  24.       
  25. main()
  26. {
  27.     int n = fgetb(stdin);
  28.     printf("The number was %d\n",n);
  29.     return 0;
  30. }
  31.