C 语言标准库函数 - ungetc()

返回上一级

C 语言标准库 <stdio.h> 函数 int ungetc(int char, FILE *stream) 把字符 char (一个无符号字符)推入到指定的流 stream 中,以便它是下一个被读取到的字符

头文件

#include <stdio.h>

函数原型

下面是 ungetc() 函数的原型

int ungetc(int char, FILE *stream)

参数

  • char : 这是要被推入的字符。该字符以其对应的 int 值进行传递
  • stream : 这是指向 FILE 对象的指针,该 FILE 对象标识了输入流

返回值

如果成功,则返回被推入的字符,否则返回 EOF,且流 stream 保持不变

范例

下面的范例演示了 ungetc() 函数的用法。

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 *
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
 */

#include <stdio.h>

int main ()
{
   FILE *fp;
   int c;
   char buffer [256];

   fp = fopen("demo2.txt", "r");
   if( fp == NULL ) 
   {
      perror("打开文件时发生错误");
      return(-1);
   }
   while(!feof(fp)) 
   {
      c = getc (fp);
      /* 把 ! 替换为 + */
      if( c == '!' ) 
      {
         ungetc ('+', fp);
      }
      else 
      {
         ungetc(c, fp);
      }
      fgets(buffer, 255, fp);
      fputs(buffer, stdout);
   }
   return(0);
}

假设存在文件 demo2.txt 内容如下

$ cat demo2.txt
这里是 www.twle.cn!
!简单教程
!简单编程

编译运行范例,输出结果如下

$ gcc main.c && ./a.out
这里是 www.twle.cn!
+简单教程
+简单编程
+简单编程

返回上一级

C 语言标准库

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.