ungetc相当于c#

时间:2009-01-12 07:48:34

标签: c# c

c#中的任何函数是否等同于C的stdio函数ungetc()?

1 个答案:

答案 0 :(得分:4)

不是我所知道的;对于某些情况,您可以使用类似StreamReader的内容并使用Peek

        using(StreamReader reader = new StreamReader(stream))
        {
            /// ... lots of reading
            int i = reader.Peek();
            /// ... lots of reading
        }

但是,我不认为您可以将任意数据推回到流中,除非您使用的是MemoryStream之类的内容,因此可以使用数据。

即使你有Stream可读和可写(罕见),那么仍然只有一个光标,所以你需要小心在写完后重置位置(所以它需要也可以寻求;再次,不常见);然而,这并不健壮 - 一些流(例如TCP中的网络流)会将写入视为“将其发送到另一台机器”,并且它永远不会被读取返回。它不可寻求;-p