В качестве части назначения мне необходимо прочитать данные из двоичного файла, который состоит из int
, данных типов данных. Этот двоичный файл делится на записи по 96 байт каждый. Я пытаюсь прочитать эти 96 байт в буфер char
, а затем попытаться разбить их в соответствии с информацией, которую у меня есть. Но я ничего не получаю при попытке получить значения int
из буфера. Можете ли вы мне помочь в этом?Операции с файлами на C++
#include<iostream>
#include<fstream>
#include<cstdio>
using namespace std;
int main()
{
char buffer[100];
char *p;
char temp[10];
int val;
fstream ifs,ofs;
ifs.open("write.bin",ios::binary);
if(ifs.read(buffer,96))
{
cout << "READ" << endl;
}
p = buffer;
memcpy(temp,buffer,4);
cout << temp << endl;
val = atoi(temp);
cout << val << endl;
}
Я использовал strncpy
также вместо memcpy
. Выходной сигнал 0 для val
и пробел для temp
.
Мы могли бы помочь, если вы покажете нам код, с которым вы столкнулись. –
разве вы не забыли флаг 'ios :: in' в' ifs.open (...) '? попробуйте 'делать ifs.seekg (0);' перед вызовом 'ifs.read (...)'. – vissi2
Какова структура ваших записей? Кажется, вы пытаетесь прочитать строки, где данные могут быть в двоичном представлении. – Matthias