C言語の標準ライブラリungetcのリファレンスです。
概要 | ストリームに1文字戻す。 |
ヘッダ | #include <stdio.h> |
I/F | int ungetc(int c, FILE *stream); |
戻り値 | 押し戻された文字。操作失敗ならEOF。 |
詳細 | ungetc関数は、cをunsigned char型に変換した後にstreamが指す入力ストリームに押し戻す。その後の、そのストリームに対する読み取り時には、押し戻された文字が逆順で返される。押し戻した文字を読み取る前にファイル位置付け関数(fseek、fsetpos、rewind)が正常に呼び出されると、押し戻されていた文字は捨てられる。ungetc関数は、ストリームに対応している外部記憶を変更しない。また、どの処理系でも1文字の押戻しを保証する。ストリームに対する読取りやファイル位置付けを行わずに、連続してungetc関数を何度もコールすると、ungetc関数は失敗する可能性がある。cの値がEOFであるとき、ungetc関数は失敗する。そのとき、入力ストリームの変更はない。ungetc関数の呼出しが成功すると、そのストリームのファイル終了表示子はクリアされる。押し戻された文字をすべて読み取った後、又は捨てた後のストリームのファイル位置表示子の値は、押し戻される前と同じである。ungetc関数の呼出し成功後から押し戻された文字がすべて読み取られるか、捨てられるまでの間は、テキストストリームでのファイル位置表示子の値は未規定である。バイナリストリームの場合は、ungetc関数の呼出し成功毎にファイル位置表示子は1減算されるが、呼出し前の値が0の場合、呼出し後の値は不定である。 |