如何通过“ifstream”将文件指针移动到下一个字符而不“获取”任何字符,就像“fseek”一样?

时间:2011-06-02 10:31:16

标签: c++ file-io ifstream

seekg 使用 ios 作为第二个参数, ios 可以设置为 end 或其他一些值如下所示:http://www.cplusplus.com/reference/iostream/ios/

我只想让指针移动到下一个角色,如何通过 ifstream 来完成?

修改 好吧,问题是我希望 ifstream 中的函数类似于 fseek ,它会移动指针而不会读取任何内容。

4 个答案:

答案 0 :(得分:6)

ifstream fin(...);
// ...

fin.get(); // <--- move one character
// or
fin.ignore(); // <--- move one character

答案 1 :(得分:5)

是。它似乎已经知道它被称为seekg()

std::ifstream is("plop.txt" );

// Do Stuff

is.seekg (1, std::ios::cur);  // Move 1 character forward from the current position.

请注意这与:

相同
is.get();

// or 

is.ignore();

答案 2 :(得分:4)

阅读seekg的文档,然后按照此处的说明使用ios_base::cur

答案 3 :(得分:0)

我猜peek()unget()也很有用。

使用peek()查看下一个字符,以便getline可以按照您的需要工作。

如果您使用了get()方法,请使用unget将字符放回缓冲区。