gpt4 book ai didi

c++ - fstream 的奇怪问题

转载 作者:行者123 更新时间:2023-11-28 00:36:26 25 4
gpt4 key购买 nike

我想使用 fstream 转到文本文件中特定行中的特定字符。

例如我想转到第 2 行,我这样做:

stream.ignore(20, '\n'); // because i have 20 characters in each line.

它工作正常,但是当我尝试在这条线上移动时:

stream.seekg(1, ios::cur); // move 1 char from the current position.

然后我测试输出:

char test;
stream >> test;

它在第 3 行的中间给了我一个字符! (我应该在第 2 行)

然后我检查了我当前的位置是否合适:

stream.seekg(0, ios::cur);
stream >> char;

没关系,它在第 2 行的开头给了我一个字符。但是正如你所看到的,当我用 1 替换 0 时,它在第 3 行的中间给了我一个字符! :/不应该移动 1 个字符吗?

你知道它为什么这样做吗?

我正在制作一个基于图 block 的等距引擎,我需要在文本文件中保存和读取我的数据库。我正在保存/读取的 map 区域需要在我的 View 中,因此我必须从 minx char 读取到 maxx char,并将 miny(line) char 读取到 maxy(line)。

谢谢

最佳答案

链接在这里:http://www.daniweb.com/software-development/cpp/threads/110602/problem-with-seekg指出文件必须以二进制模式打开,以便 seekg 能够可靠地使用偏移量运行。试试看。

关于c++ - fstream 的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20772335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com