【发布时间】:2015-04-04 13:03:15
【问题描述】:
有一个包含几个字符(比如说 10 个)的文本文件,您可以尝试从中读取 1000 个字符。
char *buf = new char[1000];
ifstream in("in.txt");
in.read(buf, 1000);
这当然会设置eofbit 标志(以及failbit),但是,您将能够获得所需的字符。
现在,假设您想再次读取文件(从头开始):
in.seekg(0); // Sets input position indicator.
in.read(buf, 100); // Try to read again.
这不起作用:因为如果你打电话:
int count = in.gcount() // Charecters readed from input.
您会注意到count == 0。这意味着它根本没有读取任何内容。
因此问题是:到达文件末尾后如何回退文件?
【问题讨论】: