我正在使用C ++从文件中读取一些字符并将它们存储在缓冲区中,但是,我正在目睹ifstream
读取函数的奇怪行为。
首先,我正在使用此代码段来获取文件的长度:
input.seekg (0, input.end);
int length = input.tellg();
input.seekg (0, input.beg);
之后,我调用 read()从文件中获取长度字节。
除了一件事外,它工作正常: 如果我使用 input.gcount()来查看读取了多少字节,这个数字远小于我们上面的文件长度(但显示实际 nuber文件中的字节数。)
您是否知道使用 tellg()找到的文件长度与之后读取的字节数之间的差异,如 gcount()
对于任何格式问题(我正在使用手机)抱歉。
非常感谢。
编辑:
这是我正在使用的代码(或多或少):
ifstream input("test.txt");
input.seekg (0, input.end);
int length = input.tellg();
input.seekg (0, input.beg);
input.read(buffer,length);
int extracted = input.gcount();
答案 0 :(得分:1)
Fstream's tellg / seekg returning higher value than expected
刚刚找到这个链接......它解释得很好!
原来我需要在发布之前再搜索一下......
谢谢大家的回答