最近尝试将一个用C写的程序转到Qt上,结果本菜鸟遇到了很郁闷的问题啊……
fread可以将一定量的字节读入变量中,并且即使没有足量的字节来读入,也可以将不足量的字节放入变量中。
但是QDataStream就挺郁闷了,如果没有足量的字节 >> 入变量,就会读入一个0,而不是剩下的那些不足量的字节。
举个例子吧,fread(&a, 4, 1, file)将当前文件指针处读入4个字节至a中。如果此时指针在倒数第2个字节处,显然没有足量的字节了,但是fread仍然能读入这些字节。
但是如果是fileStream >> a,a为quint32,file的pos在倒数第二个字节处,那么这个时候a就是0,剩下的字节直接无视了。
所以,该怎么解决……