假设限定位数为n(n < 10),设置循环读入各个阿拉伯字符(含+、-,其他非阿拉伯字符舍弃),并将读入的字符同步转换为一个整数,循环结束后就可得到所需的整形变量的值。代码:
int i,n,digit,sign = 1,num = 0;
scanf("%d",&n); // 读入限制位数
for(i = 0; i < n; ++i) {
digit = getchar();
if(digit = '\n') break; // 读数结束
if(digit = '+') sign = 1;
else if(digit = '-') sign = -1;
if(digit >= '0' && digit <= '9')
num = 10 * num + digit - '0';
}
num *= sign; // 这是读入的整数。