```C
int ungetc(int c, FILE* fp);
```
函数效果:将c指定的字符放回到输入流中。ANSI C标准保证每次只放回一个字符。
调用此函数后,下次调用标准输入函数时,将读取被ungetc()放回的字符c
```C
int fflush(FILE* fp);
```
函数效果:使输出缓冲区中所有的未写入数据被发送至fp指定的输出文件,即***刷新缓冲区***
如果fp是空指针,所有输出缓冲区都被刷新。
==在输入流中使用fflush()函数的效果是未定义的!!!==
```C
int setvbuf(FILE* restrict fp, char* restrict buf, int mode, size_t size);
```
函数效果:创建了一个供标准I/O函数替换使用的缓冲区。
在打开文件后且尚未对流进行其他操作之前,调用此函数。fp识别待处理的流,
buf指向待使用的存储区。如果buf的值不是NULL,则必须创建一个缓冲区。如果buf的值是NULL,则此函数会为自己分配一个缓冲区。即,可以使用指定的位置作为缓冲区,也可以使用系统自动分配的缓冲区。
mode表示缓冲形式:
|模式|解释|
|-|-|
|_IOFBF|完全缓冲|
|_IOLBF|行缓冲|
|_IONBF|无缓冲|
size_t:指明缓冲区中字节的数量
如果操作成功,函数返回0。如果操作失败,函数返回一个非0值。C基础——文件I/O (4)
原文:https://blog.51cto.com/u_15058552/2900480