Форум программистов, компьютерный форум CyberForum.ru

Переделать задачу под бинарные файлы - C++

Восстановить пароль Регистрация
 
Sselicrem
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 9
24.09.2013, 06:51     Переделать задачу под бинарные файлы #1
Дан файл, компонентами которого являются массивы действительных чисел. Вычислить для каждого массива число отрицательных элементов. Записать в другой файл каждое из этих чисел.

Сделал для текстовых файлов, но потом сказали что нужно переделать для бинарных файлов. Помогите переделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "stdafx.h"
#include <string.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
 
void main()
{
    int b[100], j=0, i=1, k;
    FILE *f1,*f2;
    char c[800]; string s;
    f1=fopen("input.txt","rt");
    f2=fopen("output.txt","wt");
    while(!feof(f1))
    {
        k=0;
        fgets(c,100,f1);
        for(int j=0;c[j]!='\0';j++)
        {
            s=&c[j];
            if((c[j]!=' ')&&(c[j]!='\0'))
            {
                i++;
                s=&c[j];
                b[i]=atoi(s.c_str());
                if (b[i]<0) k++;
            }
        }
        fprintf(f2,"%i ",k);
    }
}
Добавлено через 35 минут
как в бинарном файле состоящем из массивов определить где заканчивается первый массив и где начинается второй? или если размеры массивов не определены то их можно взять за произвольную константу?

Добавлено через 17 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
    ifstream in("in.bin", ios::binary);
    ofstream out("out.bin", ios::binary);
 
    const int N = 5;
    double mas[N];
 
    while(!in.eof())
    {
        for(int i = 0; i < N; i++)
            in >> mas[i];
 
        for(int j = 0; j < N; j++)
            if (mas[i] < 0) k++;       
 
        out << k;
    }
 
    in.close();
    out.close();
так правильно?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2013, 06:51     Переделать задачу под бинарные файлы
Посмотрите здесь:

Бинарные файлы.. C++
C++ Бинарные файлы
C++ Бинарные файлы
Бинарные файлы c++ C++
Бинарные файлы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
24.09.2013, 07:08     Переделать задачу под бинарные файлы #2
Sselicrem, направление правильное, только с языком определись. У тебя первый вариант написан на C, а второй на C++.
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
24.09.2013, 08:28     Переделать задачу под бинарные файлы #3
размер массива sizeof(mas) байт.
первый массив закончится в файле через sizeof(mas), второй sizeof(mas)*2, третий sizeof(mas)*3 и т.д

Добавлено через 1 минуту
1-ый массив начинается в файле по смещению 0, 2-ой sizeof(mas), 3-ий sizeof(mas)*2
Sselicrem
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 9
24.09.2013, 09:25  [ТС]     Переделать задачу под бинарные файлы #4
всем спасибо, разобрался. тему можно закрывать
Yandex
Объявления
24.09.2013, 09:25     Переделать задачу под бинарные файлы
Ответ Создать тему
Опции темы

Текущее время: 15:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru