首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >putc和ungetc有什么区别?

putc和ungetc有什么区别?
EN

Stack Overflow用户
提问于 2011-05-21 13:23:38
回答 3查看 2K关注 0票数 2

int ungetc(int c, FILE *fp)将字符c推回到fp中,如果出现错误,则返回c或EOF

其中,as int putc(int c, FILE *fp)将字符c写入文件fp并返回写入的字符,如果出现错误,则返回EOF

//这些是K&R中的语句,我觉得自己很困惑,因为putc()可以在getc之后使用,并且可以作为ungetc使用。那么专门定义ungetc()又有什么用呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-21 13:29:51

putc将某些内容写入输出,因此它会出现在屏幕上或您将输出重定向到的文件中。

ungetc将一些内容放回输入缓冲区,因此下次调用getc (或fgetc等)时。这就是你会得到的。

您通常使用putc来编写输出。通常在读取输入时使用ungetc,唯一知道已到达某项末尾的方法是当您读取一个不能作为当前“某物”一部分的字符时。例如,你正在读取和转换一个整数,你会继续下去,直到你读取的不是一个数字--然后你ungetc那个非数字的字符,作为来自流的下一个东西来处理。

票数 11
EN

Stack Overflow用户

发布于 2011-05-21 13:28:51

ungetc使用打开的流进行读取,并且不修改原始文件。putc在为写入而打开的流上工作,并实际将字节写入文件。

票数 2
EN

Stack Overflow用户

发布于 2011-05-21 13:28:04

如果您在流fp上执行ungetc,然后再次执行getc,您将得到刚刚输入的相同字符。如果你做了putc,“流继续”,随后的getc将得到它之后的任何东西,如果有什么……getcungetc用于“向前看”,如果在处理字符时有特殊情况,则将其放回原处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6079785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档