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