int ungetc(int c, FILE *fp)
推字符c回FP,並返回無論是C,或EOF
爲一個錯誤。putc和ungetc有什麼區別?
其中int爲putc(int c, FILE *fp)
將字符c寫入文件fp並返回寫入的字符或EOF
發生錯誤。
//這是給K &陳述R.我發現自己困惑,因爲putc()
可以getc
後即可使用,並且可以作爲ungetc
工作。那麼在具體定義ungetc()
時有什麼用處。
int ungetc(int c, FILE *fp)
推字符c回FP,並返回無論是C,或EOF
爲一個錯誤。putc和ungetc有什麼區別?
其中int爲putc(int c, FILE *fp)
將字符c寫入文件fp並返回寫入的字符或EOF
發生錯誤。
//這是給K &陳述R.我發現自己困惑,因爲putc()
可以getc
後即可使用,並且可以作爲ungetc
工作。那麼在具體定義ungetc()
時有什麼用處。
putc
寫的東西輸出,所以它出現在屏幕上,或文件到您重定向輸出。
ungetc
把東西放回輸入緩衝區,所以下次你打電話getc
(或fgetc
等),這就是你會得到什麼。
您正常使用putc
寫輸出。當你閱讀輸入時,你通常使用ungetc
,當你讀到一個不能成爲當前「某事」的角色時,你知道你已經達到了某種結果的唯一方式。例如,你正在閱讀並轉換一個整數,你繼續閱讀除了數字以外的其他東西 - 然後你將這個非數字字符作爲下一個來自這個數據流的東西處理。
如果您在流fp
做ungetc
,然後你再做一個getc
,你回來,你只是把相同的字符,如果你做putc
的「流繼續前進」,並隨後getc
會得到什麼是後,如果有什麼... 的getc
和ungetc
用於「偷看進取」,並把它放回去,如果在處理字符。例如一些特殊情況下,
只是putc將之後,如果不會,我得到我只是把...因爲它僅僅是其中的文件指針指向...不是它相同的字符我做GETC? – 2011-05-21 05:34:04
是,文件指針該字符,這是輸出緩衝器,確實(如傑裏說)在回輸入緩衝區ungetc函數放後putc將移動到(他們可能是相同的,這就是我是假設) – 2011-05-21 05:41:11
雅所以主要區別在於ungetc放在輸入緩衝區中,而putc將它放在輸出緩衝區中...... – 2011-05-21 05:45:14
ungetc使用打開的流進行讀取,並且不會修改原始文件。 putc在爲寫入打開的流上工作,實際上將字節寫入文件。
thanx for this explanation answers .. :) – 2011-05-21 05:40:10