对于ungetc是把数字放入回输入端,要不然在处理程序的时候还需要设置变量来进行对这个变量的处理。它在放回的时候是放回在了前面,放在最前面,下次直接第一个将放进去的读取出来。下面是一个示例代码:
#include<stdio.h>
#include<ctype.h>
int main(){
int ch;
int result=0;
printf("Enter an integer:");
/*Read in and convert number*/
while(((ch=getchar())!=EOF)&&isdigit(ch)){
result = result*10 + ch-'0';
}
if(ch!=EOF)
ungetc(ch,stdin);
printf("Number = %d\nNextcharacter in stream = '%c'",result,getchar());
return 0;
}
输入以及输出结果:
[root@localhost unix_learn]# ./test_ungetc
Enter an integer:521ab
Number = 521