位置:首頁 > 高級語言 > C語言標準庫 > ungetc() - C語言庫函數

ungetc() - C語言庫函數

C語言庫函數 int ungetc(int char, FILE *stream) 將字符的字符(unsigned char類型)到指定的流,用於下一個讀操作。

聲明

以下是聲明 ungetc() 函數。

int ungetc(int char, FILE *stream)

參數

  • char -- 這是被放回到字符。這是通過作為整型轉換。

  • stream -- 這是一個文件對象的指針,識彆輸入流。

返回值

如果成功,則返回字符推回,否則,返回EOF並流保持不變。

例子

下麵的例子顯示 ungetc() 函數的用法。

#include <stdio.h>

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

   fp = fopen("file.txt", "r");
   if( fp == NULL ) 
   {
      perror("Error in opening file");
      return(-1);
   }
   while(!feof(fp)) 
   {
      c = getc (fp);
      /* replace ! with + */
      if( c == '!' ) 
      {
         ungetc ('+', fp);
      }
      else 
      {
         ungetc(c, fp);
      }
      fgets(buffer, 255, fp);
      fputs(buffer, stdout);
   }
   return(0);
}

假設我們有一個文本文件file.txt,其中包含以下數據。此文件將被作為我們的示例程序輸入:

this is tutorials yiibai
!c standard library
!library functions and macros

讓我們編譯和運行上麵的程序,這將產生以下結果:

this is tutorials yiibai
+c standard library
+library functions and macros
+library functions and macros