在标准C库中,ungetc()是否不写入文件?
它只会移动文件位置吗?
可以事先没有任何阅读使用吗?即它可以独立于其他IO功能使用吗?
是否可以在读取功能之后使用,这种功能不是一次一个字符,即一次只读取一个字符?
感谢。
答案 0 :(得分:2)
ungetc
是一个读取函数。它不做任何写作。该文件甚至可能无法写入。
事先你所做的并不重要。 ungetc
函数仅影响将来的读取。
如果下一次读取是块读取,那么它将首先读取由ungetc
推送的字符。
如果ungetc
某些字符然后读取这些字符,文件位置指示器将返回到原来的位置。
虽然还有推迟的字符,但尚未阅读,但是:
1
减去文件位置指示符;如果它试图从0
返回,则变为不确定。如果您有任何其他问题,可以通过the C Standard中的ungetc
说明回答: