C語言stdio頭文件(stdio.h)中ungetc函數的用法及代碼示例。
用法:
int ungetc ( int character, FILE * stream );
從流中取消角色
這字符可能是也可能不是從流在前麵的輸入操作中。無論如何,從中檢索下一個字符流是個字符傳遞給此函數,與原始函數無關。
但是請注意,這僅會影響該設備上的進一步輸入操作流,而不是與之關聯的物理文件的內容,對此函數的任何調用都不會對其進行修改。
某些庫的實現可能支持多次調用此函數,從而使字符以相反的順序可用放回去。盡管此行為沒有標準的可移植性保證,並且在除第一個調用之外的任何數量的調用之後,其他調用都可能完全失敗。
如果成功,該函數將清除文件結束指示符的流(如果當前已設置),並減少其內部文件位置指示如果它以二進製模式運行;在文字模式下,位置指示器具有未指定的值,直到所有字符都放回ungetc已被讀取或丟棄。
調用fseek,fsetpos或者rewind在流會丟棄以前使用此函數放回其中的所有字符。
如果參數傳遞給字符參數是EOF,操作失敗,輸入流保持不變。
參數
- character
- 這個int推廣角色要放回去。
該值在內部轉換為unsigned char當放回去。 - stream
- 指向一個指針FILE標識輸入流的對象。
返回值
成功之後,字符放回去。如果操作失敗,EOF返回。
示例
/* ungetc example */
#include <stdio.h>
int main ()
{
FILE * pFile;
int c;
char buffer [256];
pFile = fopen ("myfile.txt","rt");
if (pFile==NULL) perror ("Error opening file");
else while (!feof (pFile)) {
c=getc (pFile);
if (c == EOF) break;
if (c == '#') ungetc ('@',pFile);
else ungetc (c,pFile);
if (fgets (buffer,255,pFile) != NULL)
fputs (buffer,stdout);
else break;
}
return 0;
}
本示例打開一個現有文件,名為myfile.txt用於讀取並打印其行,但首先獲取每行的第一個字符,然後將其放回流中,以替換任何開頭#由一個@。
相關用法
- C語言 remove用法及代碼示例
- C語言 rename用法及代碼示例
- C語言 tmpfile用法及代碼示例
- C語言 tmpnam用法及代碼示例
- C語言 fclose用法及代碼示例
- C語言 fflush用法及代碼示例
- C語言 fopen用法及代碼示例
- C語言 freopen用法及代碼示例
- C語言 setbuf用法及代碼示例
- C語言 setvbuf用法及代碼示例
- C語言 fprintf用法及代碼示例
- C語言 fscanf用法及代碼示例
- C語言 printf用法及代碼示例
- C語言 scanf用法及代碼示例
- C語言 snprintf用法及代碼示例
- C語言 sprintf用法及代碼示例
- C語言 sscanf用法及代碼示例
- C語言 vfprintf用法及代碼示例
- C語言 vfscanf用法及代碼示例
- C語言 vprintf用法及代碼示例
- C語言 vscanf用法及代碼示例
- C語言 vsnprintf用法及代碼示例
- C語言 vsprintf用法及代碼示例
- C語言 vsscanf用法及代碼示例
- C語言 fgetc用法及代碼示例
- C語言 fgets用法及代碼示例
- C語言 fputc用法及代碼示例
- C語言 fputs用法及代碼示例
- C語言 getc用法及代碼示例
- C語言 getchar用法及代碼示例
- C語言 gets用法及代碼示例
- C語言 putc用法及代碼示例
- C語言 putchar用法及代碼示例
- C語言 puts用法及代碼示例
- C語言 fread用法及代碼示例
- C語言 fwrite用法及代碼示例
- C語言 fgetpos用法及代碼示例
- C語言 fseek用法及代碼示例
- C語言 fsetpos用法及代碼示例
- C語言 ftell用法及代碼示例
- C語言 rewind用法及代碼示例
- C語言 clearerr用法及代碼示例
- C語言 feof用法及代碼示例
- C語言 ferror用法及代碼示例
- C語言 perror用法及代碼示例
注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C ungetc function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。