Что я должен сделать, это открыть файл в двоичном режиме, который содержит хранимые данные, которые предназначены для интерпретации как целые числа.Я видел другие примеры, такие как Stackoverflow-чтение «целочисленных» байтов из массива char *. , но я хочу попробовать другой подход (я могу быть просто упрямым или глупым: /).Сначала я создал простой двоичный файл в шестнадцатеричном редакторе, который выглядит следующим образом.
00 00 00 47 00 00 00 17 00 00 00 41
Это (должно) равняться 71, 23 и 65, если 12 байтов были разделены на 3 целых числа.
После открытия этого файла в двоичном режиме и чтения 4 байтовв массив символов, как я могу использовать побитовые операции, чтобы биты char [0] были первыми 8 битами целого и т. д., пока биты каждого символа не станут частью целого числа.
My integer = 00 00 00 00
+ ^ ^ ^ ^
Chars Char[0] Char[1] Char[2] Char[3]
00 00 00 47
So my integer(hex) = 00 00 00 47 = numerical value of 71
Кроме того, я не знаю, как здесь проявляется порядок моей системы, так что мне нужно помнить что-нибудь?
Вот фрагмент кодаиз того, что у меня есть, я просто не знаю, что делать дальше.
std::fstream myfile;
myfile.open("C:\\Users\\Jacob\\Desktop\\hextest.txt", std::ios::in | std::ios::out | std::ios::binary);
if(myfile.is_open() == false)
{
std::cout << "Error" << std::endl;
}
char* mychar;
std::cout << myfile.is_open() << std::endl;
mychar = new char[4];
myfile.read(mychar, 4);
В конце концов я планирую заняться чтением чисел с плавающей точкой из файла и, возможно, пользовательского типа данных, но сначала мне просто нужно больше ознакомиться с использованием побитовых операций.Спасибо.