/* * Exercise1.3.c * * * */ #include #include #include int getdig(void){ char * pEnd; int i, c, n, factor, digit[9] = { 0 }; i = 0; printf("Enter Digits.\n"); while((c = getchar()) != '\n' && i != 9){ // c is now the int cast of the unsigned char that getchar returned if( c >= '0' && c <= '9') { digit[i++] = c - '0'; } else { /* do something.. they entered something that wasn't a digit */ } } n = i; c = 0; factor = 1; for(i=n-1; i!=0; i--){ c += (digit[i] * (int)factor); printf("DEBUG: c is now (int) %d and (char) %c.\n", c, c); factor *= 10; } printf("Is your number %c, or %d?\n", c, c); printf("Number of digits is %d.\n", n); return 0; } int main(void){ int got; got = getdig(); printf("Your number is: %d\n",got); }