如何将文件指针移回一个整数?

use*_*184 8 c++ file

假设我在表单中有一个包含整数的文件

1 57 97 100 27 86 ...
Run Code Online (Sandbox Code Playgroud)

假设我有一个输入文件流fin,我尝试从文件中读取整数.

ifstream fin("test.txt");
int val;
fin>>val;
Run Code Online (Sandbox Code Playgroud)

现在我在while循环中执行此操作,在一段时间内,我想将我的文件指针正好移回一个整数.也就是说,如果我的文件指针即将读取整数27当我这样做fin>>val,我想移动文件指针,以便它可以读取整数100当我这样做fin>>val.我知道我们可以使用,fin.seekg()但我只使用它来按字符移动文件指针,而不是整数.

可能这是一个天真的问题.但有人可以帮帮我吗?

Grz*_*orz 3

在您的情况下,它不是整数,而是代表数字的文本。因此,您必须一个字符一个字符地向后移动,直到找到一个非数字 ( !isdigit(c))。

正如下面的评论者之一指出的那样,您还可以注意“减号”符号,以防您的数字可能为负数。