指针与函数参数

/*该版本的getint函数在到达文件结尾时返回EOF,
当下一个输入不是数字时返回0,当输入中包含一
个有意义的数字时返回一个正值。*/
#include <stdio.h>
int getch(void);
void ungetch(int);
/*getint函数:将输入中的下一个整型数赋值给*pn*/
int getint(int *pn)
{
 int c,sign;
 while(isspace(c=getch())) /*跳过空白符*/
  ;
 if(!isdigit(c)&&c!=EOF&&c!='+'&&c!='-')
 {
  ungetchar(c); /*输入不是一个数字*/
  return 0;
 }  
 sign = (c=='-')?-1:1;
 if(c=='+'||c=='-')
  c=getchar();
 for(*pn=0;isdigit(c);c=getch())
  *pn=10**pn+(c-'0');
 *pn*=sign;
 if(c!=EOF)
  ungetch(c);
 return c;
}
 
posted @ 2019-11-19 11:35  烟火流沙  阅读(134)  评论(0编辑  收藏  举报