putc和ungetc有什么区别?

Sha*_*han 2 c c++ function

int ungetc(int c, FILE *fp)将字符c推回fp,并返回c或EOF错误.

其中int putc(int c, FILE *fp)将字符c写入文件fp并返回写入的字符,或者返回EOF错误.

//这些是K&R的陈述.我发现自己很困惑,因为putc()可以在以后使用getc并且可以工作ungetc.那么具体定义的用途是什么ungetc().

Jer*_*fin 11

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

ungetc把东西放回输入缓冲区,所以下次你打电话getc(或fgetc等等)就是你得到的东西.

您通常putc用来写输出.你通常ungetc在阅读输入时使用,而你知道自己已经达到某种结果的唯一方法是当你读到一个不能成为当前"某事"一部分的角色时.例如,你正在读取并转换一个整数,你继续阅读,直到你读到一个数字以外的东西 - 然后你将ungetc那个非数字字符作为来自流的下一个东西进行处理.