Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Чтение бинарнпых файлов

88K
15 декабря 2013 года
khralisa
3 / / 15.12.2013
Помогите пожалуйста! Имеются файлы, записанные в бинарном формате. Необходимо составить программу для чтения и перевода данного массива в ASCI код.
Я написал следующее:
#include <stdlib.h>
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>

FILE *fp,*fp1;
int i,n,N;
double rk1[700000],rk2[700000],A[700000];
char ptr;

main()
{
fp=fopen("rec_001.bin","r+b");
fp1=fopen("w.dat","wt");
n=fread(A,sizeof(A),N,fp);
fclose(fp);
for(i=0;i<N;i++) {
printf("%17.9e %17.9e",rk1,rk2);
fprintf(fp1,"%17.9e %17.9e",rk1,rk2);
}


return (0);
}

Но программа ничего не читает и не записывает! Помогите пожалуйста исправить ошибки.
326
15 декабря 2013 года
sadovoya
757 / / 19.11.2005
Тогда для начала прокомментируйте, как она по-вашему должна была работать?
P.S. Для вставки кода есть кнопочка {...}
88K
15 декабря 2013 года
khralisa
3 / / 15.12.2013
Цитата: sadovoya
Тогда для начала прокомментируйте, как она по-вашему должна была работать?
P.S. Для вставки кода есть кнопочка {...}



В файле, *.bin, который необходимо перевести в текстовый формат содержатся два столбца, записанные с помощью АЦП. Вот мне и нужно прочитать, перевести в текстовый формат. То есть на выходе я должен получить два столбца и записать их в файл.

326
15 декабря 2013 года
sadovoya
757 / / 19.11.2005
Задачу я понял сразу. Комментарии к вашему коду, пожалуйста.
88K
15 декабря 2013 года
khralisa
3 / / 15.12.2013
Цитата: sadovoya
Задачу я понял сразу. Комментарии к вашему коду, пожалуйста.



n=fread(A,sizeof(A),N,fp);

Мне непонятно как прочитать файл целиком и запомнить количество записей:. иными словами как читать и запоминать первоначальный массив в бинарном коде.

326
15 декабря 2013 года
sadovoya
757 / / 19.11.2005
Основываясь на типе данных в файле, если он известен. Если неизвестен, то любые данные -- это нули и единицы двоичные. Читать их можно какими угодно блоками. И есть такая штука, как bitset. Удобно им воспользоваться для перевода двоичных единиц и нулей в символы 1 и 0.
44K
10 февраля 2014 года
vvmCpp
32 / / 21.01.2014
Могу показать программу для примера. Программа считывает в бинарном режиме файл demo.bin

[ code ]


#include <cstdlib>
#include <iostream>
#include <fstream>

/*

http://forum.codenet.ru/q74184/Чтение+бинарнпых+файлов
Имеются файлы, записанные в бинарном формате.
Необходимо составить программу для чтения и перевода данного массива в ASCI код.

*/



/*

проверял в dev-c++ , компилятор Mingw

программа читает и выводит на экран бинарный файл с
именем demo.bin

*/

struct emp
{
int code;
char name[20];
double sallery;

};


using namespace std;

int main(int argc, char *argv[])
{
ifstream inMyFSteam;// файловый поток
struct emp s; // структура которую мы будем считывать
long length,n;// длинна файла и колличество записей

inMyFSteam.open("demo.bin");

if(!inMyFSteam.is_open())
{
cout<<"Open file failedn";

// для проверки что файл открывается
// system("PAUSE"); можно закомментировать
system("PAUSE");
return 0;
}
// длинна файла
inMyFSteam.seekg(0,ios::end);
length=inMyFSteam.tellg();
inMyFSteam.seekg(0,ios::beg);

//считаем колличество записей
n=length/sizeof(emp);

//читаем записи
for(int i=0;i<n;++i)
{
inMyFSteam.read((char*)&s, sizeof(struct emp));
cout<<"code: "<<s.code<<"name: "<<s.name
<<"sal: " <<s.sallery<<endl;
}
//закрыть поток
inMyFSteam.close();

system("PAUSE");
return EXIT_SUCCESS;
}

[ /code ]
326
11 февраля 2014 года
sadovoya
757 / / 19.11.2005
Сколько можно напоминать про кнопочку вставки кода {...} ?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог