C 庫函數(shù) - ungetc()
描述
C 庫函數(shù) int ungetc(int char, FILE *stream) 把字符 char(一個無符號字符)推入到指定的流 stream 中,以便它是下一個被讀取到的字符。
聲明
下面是 ungetc() 函數(shù)的聲明。
int ungetc(int char, FILE *stream)
參數(shù)
- char -- 這是要被推入的字符。該字符以其對應(yīng)的 int 值進(jìn)行傳遞。
- stream -- 這是指向 FILE 對象的指針,該 FILE 對象標(biāo)識了輸入流。
返回值
如果成功,則返回被推入的字符,否則返回 EOF,且流 stream 保持不變。
實例
下面的實例演示了 ungetc() 函數(shù)的用法。
#include <stdio.h> int main () { FILE *fp; int c; char buffer [256]; fp = fopen("file.txt", "r"); if( fp == NULL ) { perror("打開文件時發(fā)生錯誤"); 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); }
假設(shè)我們有一個文本文件 file.txt,它的內(nèi)容如下。文件將作為實例中的輸入:
this is w3cschool !c standard library !library functions and macros
讓我們編譯并運行上面的程序,這將產(chǎn)生以下結(jié)果:
this is w3cschool +c standard library +library functions and macros +library functions and macros
更多建議: