Cライブラリ関数 -ungetc()

C 标准库 - <stdio.h>C標準ライブラリ - <stdio.h>

説明

Cライブラリ関数int ungetc(int char, FILE *stream)文字をchar(符号なし文字)を指定されたストリームにプッシュしてstream、それが次に読み取られる文字になるようにします。

宣言

以下は ungetc() 関数の宣言です。

int ungetc(int char, FILE *stream)

引数

  • char-- これはプッシュされる文字です。この文字は対応する int 値として渡されます。
  • stream-- これは FILE オブジェクトを指すポインタで、この FILE オブジェクトは入力ストリームを識別します。

戻り値

成功した場合はプッシュされた文字を返し、それ以外の場合は EOF を返し、ストリーム stream は変更されません。

例

以下の例は、ungetc() 関数の使用方法を示しています。

例

#include <stdio.h>

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

   fp = fopen("file.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);
}

テキストファイルがあるとしますfile.txt、その内容は次のとおりです。このファイルは例の入力として使用されます。

this is サンプル
!c standard library
!library functions and macros

上記のプログラムをコンパイルして実行してみましょう。次の結果が得られます。

this is サンプル
+c standard library
+library functions and macros

C 标准库 - <stdio.h>C標準ライブラリ - <stdio.h>

その他の拡張