ungetc函数
ungetc函数是C语言标准库中的一个函数,它的作用是将一个字符放回输入流中,使得再次读取该字符时,就能获得已放回的字符。它是标准库stdio.h中的函数,在其他语言中也有同样的函数,如Java中的unreader函数。
ungetc函数的使用场景主要有两类,一是在文本处理中,常常先用getc函数读取了期待的字节之后,发现该字节并不是期望的内容,此时需要将该字节放回到输入流中,就可以用ungetc函数来实现。
另一类是用户一次读取一行内容时,用getc函数读取一个字符,发现它不是期望的字符,此时可以用ungetc函数将其放回到输入流中,以便再次读取。
ungetc函数的函数原型定义如下:
int ungetc (int c, FILE *fp);
其中,int c为要放回的字符,FILE *fp为文件指针,指向要放回到输入流中的字符。ungetc函数返回值为要放回的字符,如果放回成功则返回该字符,否则返回EOF表示放回失败。
ungetc函数的实现原理如下:ungetc函数先判断fp指向的文件是否是可读的,也就是判断fp指向的文件是否可以用getc函数读取,如果可以,则将该字符c放入fp指向的文件的缓冲区中,也就是说,fp指向的文件的指针会指向上一次读取的字符,下次读取时才能拿到放回的字符。
ungetc函数的实现要注意以下几点:
1、它只能放回一个字符,如果要放回多个字符,就需要多次调用ungetc函数;
2、它只能放回一次,如果要放回多次,就需要借助其它变量来实现;
3、它放回的数据必须是有效字符,不能是EOF。
总结:ungetc函数是C语言标准库中的一个函数,它的功能是将一个字符放回输入流中,使得再次读取该字符时,就能获得已放回的字符。它的使用场景主要有文本处理和一次读取一行内容两类,它的函数原型定义为int ungetc (int c, FILE *fp),实现原理是先判断fp指向的文件是否可以用getc函数读取,如果可以,则将c放入fp指向的文件的缓冲区中。它的实现要注意只能放回一个字符,只能放回一次,放回的数据必须是有效字符。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论