首先要判读输入的第一个字符是否有效:'+' '-' 表示符号位 或是无效的非‘0’~‘9’间的字符。
#include <stdio.h>
int main(){
char c;
int i=0,temp=0,sign=1;
c=getchar();
if (c=='-')
{
sign=-1;
c=getchar();
}
else if(c=='+')
{
c=getchar();
}
else if (!(c>='0' && c<='9'))
{
printf("input valid numbers!\n ");
return -1;
}
while(c>='0' && c<='9'){
temp=c-'0';
i=10*i+temp;
c=getchar();
}
printf("%d\n",i*sign);
c=getchar();
}