我已经尝试了所有我能想到的东西,但没有任何效果。我有一个我在 VB.Net 中编写的二进制文件,它基本上由一个整数(当然是二进制)组成,它告诉我以下数据的数组大小,然后是二进制数据的浮点数。该文件可以从 VB.Net 中正常写入,我可以使用以下代码通过 Visual C++ 将其读回:
ifstream output("c:\\out.ipv", ios::in | ios::binary);
UInt32 len;
UInt32 *ptr2 = (UInt32*)&len;
output.read((char*)ptr2, 4);
这将返回正确的值 456780,字节为:76、248、6、0。当我在 iPad 上运行完全相同的代码时,我得到 1043089572。如果我使用下面的替代方法:
NSData *data = [[NSData alloc] initWithContentsOfFile:filePath];
UInt32 num;
const NSRange numV = {0, 4};
[data getBytes:&num range:numV];
此代码返回一个不同的值 124724,我不确定如何读取从文件中提取的确切字节。这是我试图弄清楚但无法工作的其他事情。知道为什么在 Visual C++ 中工作的相同方法在 iPad 上不起作用吗?我真的在这个方面不知所措。