本文主要是介绍ifstream::tellg() 返回-469,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一个程序输出一个文件,另一个程序打开这个文件,读入内容。读入过程中,需要记录读取位置,使用tellg()获取读取位置, 以便后面用seekg重新定位读取。
使用过程中发现,tellg()返回的位置,有时有效,有时无效,第一次是返回0,后面文件有输入后,再次读取前,调用tellg(),有时返回-469,有时返回正的位置。
经过多次摸索,结合网上搜索,发现windows下,ifstream只有用二进制模式打开文件,tellg才能返回正确的位置。
ifs->open(filePath, std::ios::binary);
其实tellg只能二进制模式用也不是不行,但文本模式有时行有时不行太恶心了。
这篇关于ifstream::tellg() 返回-469的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!