Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2017, 01:29   #1
Bard.
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 19
Восклицание Работа с бинарными файлами

Всем привет! Кто может помочь с практикой по программированию(с/с++), вот в чем вся суть задачи:
Создать файл, содержащий 10 одномерных целочисленных
массивов a1, a2,..., a10, заполненных случайными числами от –50
до 50. Переписать в другой файл те массивы, у которых сумма
элементов больше 0.

Вроде бы как с записью рандомных элементов в файл я разобрался, но никак не могу докумекать вторую часть задачи с выводом данных в файл.

Последний раз редактировалось Bard.; 22.04.2017 в 01:33.
Bard. вне форума Ответить с цитированием
Старый 22.04.2017, 01:36   #2
supervine
 
Регистрация: 21.04.2017
Сообщений: 8
По умолчанию

Так же как записывал, читаешь с того же файла типа
std::arr<int> numbers(10);

Создаешь новый файл.

i=0;
while (original_file!=NULL) {
original_file.read(&numbers[i], numbers.size()*sizeof(numbers[0]));
i+=10
считаешь сумму и записываешь в новый файл если подходит
}

Последний раз редактировалось supervine; 22.04.2017 в 01:42.
supervine вне форума Ответить с цитированием
Старый 22.04.2017, 01:41   #3
Bard.
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 19
По умолчанию

по-моему я вообще не в том направлении иду, да?
Изображения
Тип файла: jpg screen_11.jpg (26.0 Кб, 123 просмотров)
Bard. вне форума Ответить с цитированием
Старый 22.04.2017, 01:45   #4
supervine
 
Регистрация: 21.04.2017
Сообщений: 8
По умолчанию

А N это у тебя сколько? 10 или 100? Тебе же всего 100 чисел записать надо.
supervine вне форума Ответить с цитированием
Старый 22.04.2017, 01:48   #5
Bard.
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 19
По умолчанию

Там зависит от знака суммы строки, если она больше нуля, то необходимо вывести в другой файл именно это строку. Следовательно и для вывода количество элементов всегда разное, так как всегда задаются рандомные числа.
Bard. вне форума Ответить с цитированием
Старый 22.04.2017, 01:52   #6
supervine
 
Регистрация: 21.04.2017
Сообщений: 8
По умолчанию

Оба файла открыты - один для записи, один для чтения.
Вторая половина должна быть в таком роде:

Код:
for (n=0;n<10;n++) {
 fread(A, sizeof(int), N, f1);

 sum=0;
 for (i=0; i<N;i++) 
  sum+=A[i];
 if (sum>0) fwrite(&A, sizeof(int),N,f2)
  
}
Непонятно зачем ты \n в файл пишешь. Это же бинарный...
supervine вне форума Ответить с цитированием
Старый 22.04.2017, 01:53   #7
Bard.
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 19
По умолчанию

то есть вот мои входные данные, для примера
Изображения
Тип файла: png screen_12.PNG (8.1 Кб, 63 просмотров)
Bard. вне форума Ответить с цитированием
Старый 23.04.2017, 14:47   #8
Bard.
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 19
Радость

Спасибо большое, сделал, но по-своему)
Bard. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с бинарными файлами в СИ. Pug_from_Mordor Помощь студентам 3 27.05.2015 20:01
С# работа с бинарными файлами bondik Общие вопросы .NET 1 01.10.2010 12:18
работа с бинарными файлами klykovka Помощь студентам 7 28.04.2010 11:07
Работа с бинарными файлами StudentPolitech Общие вопросы C/C++ 0 19.05.2009 23:48