最近用C++读写文件时发现fstream的read函数读取binary文件时,会有不可预期的错误,读到的数据发生了错误。
对每次调用read函数之后,跟踪读取的cursor(tellg函数),发现有些时候相邻两次tellg的值相减不是read函数中所设定的count的大小,但是gcount函数返回的却是count的大小!骗子啊!希望有比较懂的人能告诉一声。
因此,我把fstream换成了C里面的FILE来读取文件,结果正确。
最近用C++读写文件时发现fstream的read函数读取binary文件时,会有不可预期的错误,读到的数据发生了错误。
对每次调用read函数之后,跟踪读取的cursor(tellg函数),发现有些时候相邻两次tellg的值相减不是read函数中所设定的count的大小,但是gcount函数返回的却是count的大小!骗子啊!希望有比较懂的人能告诉一声。
因此,我把fstream换成了C里面的FILE来读取文件,结果正确。