ifstream.read()导致流位置发生过度变化

时间:2016-07-08 03:16:13

标签: c++ position ifstream

char Buffer;
std::string FileLocation = "C:\Data.bin";
std::ifstream Stream;
Stream.open(FileLocation);
Stream.read(&MyBuffer, 1);
int begin_of_file = (int)Stream.tellg()

嗨,我试图解析我创建的二进制文件。在这样做的过程中,我发现了ifstream的奇怪行为;也就是说,如果我在位置0并且我读取了一个字节,tellg将告诉我当前它在流中的位置是3585,它应该是1.继续从流中读取按预期增加位置并且它返回正确的数据,但是流程正在抛出我的计算,就像在0和1之间有3584个位置一样。

我有什么遗漏吗? Windows将元数据添加到正在拾取的文件中?

0 个答案:

没有答案