是int ungetc(int c,FILE *fp);
该函数将c指定的字符放回输入流在stdio.h里面
第二个参数不一定是文件可以是标准输入流即stdin
其实可以使用流定位的方式,这样可控制性更好,比如你在处理文件流中固定数据量,需要用文件流中下部分数据时可以这样做:
先保存当前文件流的位置:
fpos_t old_pos;//定义一个保存流位置指针的变量
if(fgetpos(f_stream,&old_pos)==-1)//保存文件流的位置,假设叫f_stream
exit(-1);
fgets(next_data,4096,f_stream)//读取一部分数据
if(fsetpos(f_stream,&old_pos)==-1)//将流位置设置到成旧的位置,就是刚才保存的位置
exit(-2);
其实这个函数就是底层函数lseek()的高级封装后的变体
cin.putback(c)是将字符c放回到输入流中,这样后面用cin>>n时可以读完整的数字。