'.') return c; if(isdigit(c)) { s[i]=c; while(isdigit(s[++i]=c=Getch())) ; } if(c=='.') { s[i]=c; while(isdigit(s[++i]=c=Getch())) ; } s[i]='\0'; if(c!=EOF) unGetch(c); return NUMBER; }
上面这段程序中Getchar与unGetchar两个函数是功能是实现读取与返还一个字符。
在程序中往往由于要确定是否读入了足够的字符,因为会多读取一个字符进行判断,这样在再次再读取时,这个字符必须重新使用,所以,再读取后需要将这个字符放回去。
这里程序是用了一个缓冲区域,如果缓冲区为空的时候,Getch就从getchar读取一个字符,否则就从缓冲区中取出一个字符,而unGetch将字符放回到缓冲区中。
int Getch() { if(qq>=0) return Buf[qq--]; else return getchar(); } void unGetch(int c) { if