ОК, что-то действительно странное происходит с моими данными.Я только что посмотрел на необработанные значения байтов в Visual C ++ и Objective-C, и они совсем не согласны.Я только читаю первые четыре байта файла и смотрю на их значения.На данный момент я предполагаю, что я не правильно их читаю, но я не знаю, чего мне здесь не хватает.Код Visual C ++, который я использую для просмотра значений байтов, приведен ниже:
ifstream input("c:\\out.ipv", ios::in | ios::binary);
Byte tmp[4];
input.read((char*)&tmp[0], 4);
Значения в массиве tmp:
76
248
6
0
Если я делаю то же самое вtarget-c:
ifstream input([filePath UTF8String], ios::in | ios::binary);
Byte tmp[4];
input.read((char*)&tmp[0], 4);
Я получаю:
164
72
44
62
Что дает?Я бы по крайней мере ожидал получить те же значения байтов.Файл, содержащий четыре байта, с которыми у меня возникли проблемы, находится здесь: newout1.ipv
РЕДАКТИРОВАТЬ:
Я понял, где 164,72,44,62 байта значенияпроисходят из: это начальные значения массива байтов, прежде чем я в него что-то положу.По какой-то причине строка:
input.read((char*)&tmp[0], 4);
ничего не делает.Любые идеи, почему он не читает из файла, как это должно быть?
ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ:
ОК, я, вероятно, не должен публиковать ответ на этот вопрос, так как это заставляет меня выглядеть очень глупо, но яне хочу, чтобы кто-то читал эти посты, чтобы запутаться.Таким образом, массивы и объекты всегда возвращали одни и те же значения, несмотря ни на что, что также оказалось теми значениями, которые они имели при распределении.У меня было слишком много. В моем имени файла, поэтому он пытался прочитать в out..ipv, а не в out.ipv.Как только я исправил имя файла, все заработало именно так, как я ожидал.Извините за путаницу, и спасибо всем за помощь.