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