| int-read-1.c - En mere brugbar udgave med mulighed for fortegn og bedre linieafslutning. | Lektion 4 - slide 10 : 13 Program 2 |
#include <stdio.h>
int read_int(char*);
int main(void) {
int i, n = 0;
for (i = 1; i <= 5; i++){
n = read_int("Enter an integer: ");
printf("Decimal value: %d\n", n);
}
return 0;
}
int read_int(char *prompt){
int res = 0; char c; int sign = 1;
printf(prompt);
/* Handle initial sign, if any */
c = getchar();
if (c == '+') {sign = 1; c = getchar();}
else if (c == '-') {sign = -1; c = getchar();}
/* Read digits - first char is ready in c*/
while (isdigit(c)){
res = res * 10 + (c - '0');
c = getchar();
}
/* read rest of line */
while (c != '\n') c = getchar();
return sign * res;
}