C语言stdio头文件(stdio.h)中ungetc函数的用法及代码示例。
用法:
int ungetc ( int character, FILE * stream );
从流中取消角色
这字符可能是也可能不是从流在前面的输入操作中。无论如何,从中检索下一个字符流是个字符传递给此函数,与原始函数无关。
但是请注意,这仅会影响该设备上的进一步输入操作流,而不是与之关联的物理文件的内容,对此函数的任何调用都不会对其进行修改。
某些库的实现可能支持多次调用此函数,从而使字符以相反的顺序可用放回去。尽管此行为没有标准的可移植性保证,并且在除第一个调用之外的任何数量的调用之后,其他调用都可能完全失败。
如果成功,该函数将清除文件结束指示符的流(如果当前已设置),并减少其内部文件位置指示如果它以二进制模式运行;在文字模式下,位置指示器具有未指定的值,直到所有字符都放回ungetc已被读取或丢弃。
调用fseek,fsetpos或者rewind在流会丢弃以前使用此函数放回其中的所有字符。
如果参数传递给字符参数是EOF,操作失败,输入流保持不变。
参数
- character
- 这个int推广角色要放回去。
该值在内部转换为unsigned char当放回去。 - stream
- 指向一个指针FILE标识输入流的对象。
返回值
成功之后,字符放回去。如果操作失败,EOF返回。
示例
/* ungetc example */
#include <stdio.h>
int main ()
{
FILE * pFile;
int c;
char buffer [256];
pFile = fopen ("myfile.txt","rt");
if (pFile==NULL) perror ("Error opening file");
else while (!feof (pFile)) {
c=getc (pFile);
if (c == EOF) break;
if (c == '#') ungetc ('@',pFile);
else ungetc (c,pFile);
if (fgets (buffer,255,pFile) != NULL)
fputs (buffer,stdout);
else break;
}
return 0;
}
本示例打开一个现有文件,名为myfile.txt用于读取并打印其行,但首先获取每行的第一个字符,然后将其放回流中,以替换任何开头#由一个@。
相关用法
- C语言 remove用法及代码示例
- C语言 rename用法及代码示例
- C语言 tmpfile用法及代码示例
- C语言 tmpnam用法及代码示例
- C语言 fclose用法及代码示例
- C语言 fflush用法及代码示例
- C语言 fopen用法及代码示例
- C语言 freopen用法及代码示例
- C语言 setbuf用法及代码示例
- C语言 setvbuf用法及代码示例
- C语言 fprintf用法及代码示例
- C语言 fscanf用法及代码示例
- C语言 printf用法及代码示例
- C语言 scanf用法及代码示例
- C语言 snprintf用法及代码示例
- C语言 sprintf用法及代码示例
- C语言 sscanf用法及代码示例
- C语言 vfprintf用法及代码示例
- C语言 vfscanf用法及代码示例
- C语言 vprintf用法及代码示例
- C语言 vscanf用法及代码示例
- C语言 vsnprintf用法及代码示例
- C语言 vsprintf用法及代码示例
- C语言 vsscanf用法及代码示例
- C语言 fgetc用法及代码示例
- C语言 fgets用法及代码示例
- C语言 fputc用法及代码示例
- C语言 fputs用法及代码示例
- C语言 getc用法及代码示例
- C语言 getchar用法及代码示例
- C语言 gets用法及代码示例
- C语言 putc用法及代码示例
- C语言 putchar用法及代码示例
- C语言 puts用法及代码示例
- C语言 fread用法及代码示例
- C语言 fwrite用法及代码示例
- C语言 fgetpos用法及代码示例
- C语言 fseek用法及代码示例
- C语言 fsetpos用法及代码示例
- C语言 ftell用法及代码示例
- C语言 rewind用法及代码示例
- C语言 clearerr用法及代码示例
- C语言 feof用法及代码示例
- C语言 ferror用法及代码示例
- C语言 perror用法及代码示例
注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C ungetc function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。