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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
w0nder
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 131
#1

Проверить код на адекватность (объединение двух упорядоченных бинарных файлов в один) - C++

12.05.2013, 14:13. Просмотров 343. Ответов 0
Метки нет (Все метки)

Даны два бинарных файла f1 и f2, компоненты которых - произвольные цепочки символов (компоненты упорядочены в алфавитном порядке). Написать программу, которая объединяет файлы f1 и f2 в файл f3 так, чтобы компоненты f3 тоже были упорядочены (в файле f3 не должны появляться два компонента с одинаковым значением). Написать также вспомогательные программы, которые позволяют создать файлы f1 и f2 и печатают на экран содержание файла.

(Нельзя копировать все содержимое файла в оп.память.
Под компонентом файла имеется ввиду запись фиксированной длины.)


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
32
33
34
35
36
37
38
39
#include <iostream>
#include <fstream>
 
int main() {
   std::ifstream inFirst( "f1.bin", std::ios::in | std::ios::binary );
   std::ifstream inSecond( "f2.bin", std::ios::in | std::ios::binary );
   std::ofstream outThird( "f3.bin", std::ios::out | std::ios::binary );
 
   char char1;
   char char2;
 
   if (!( inFirst && inSecond && outThird ))
      return -1;
 
   inFirst.read( reinterpret_cast< char * >( &char1 ), sizeof( char1 ));
   inSecond.read( reinterpret_cast< char * >( &char2 ), sizeof( char2 ));
 
   while ( inFirst && inSecond ) {
      if ( char1 < char2 ) {
         outThird.write( reinterpret_cast < const char * >( &char1 ), sizeof( char1 ));
         inFirst.read( reinterpret_cast < char * >( &char1 ), sizeof( char1 ));
      } else {
         outThird.write( reinterpret_cast < const char * >( &char2 ), sizeof( char2 ));
         inSecond.read( reinterpret_cast < char * >( &char2 ), sizeof( char2 ));
      }
   }
 
   while ( inFirst ) {
      outThird.write( reinterpret_cast< const char * >( &char1 ), sizeof( char1 ));
      inFirst.read( reinterpret_cast< char * >( &char1 ), sizeof( char1 ));
   }
 
   while ( inSecond ) {
      outThird.write( reinterpret_cast< const char * >( &char2 ), sizeof( char2 ));
      inSecond.read( reinterpret_cast< char * >( &char2 ), sizeof( char2 ));
   }
 
   return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2013, 14:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверить код на адекватность (объединение двух упорядоченных бинарных файлов в один) (C++):

Объединение двух бинарных файлов - C++
Как сделать программу которая считывает числа (упорядоченные по возрастанию) из двух бинарных файлов f и g, и сливает их в один...

Объединение двух упорядоченных по возрастанию массивов в один, также упорядоченный - C++
Написать программу, которая объединяет два упорядоченных по возрастанию массива в один, также упорядоченный массив. Рекомендуемый вид...

Записать данные двух бинарных файлов в один - C++
Здравствуйте, столкнулся с проблемой. Нужно записать значения двух бинарных файлов в один, но при этом записанные значения не должны...

Объединение упорядоченных массивов в один - C++
Здравствуйте, форумчане. Помогите пожалуйста с реализацией программы: в С++ не умею совсем, но лабу сдавать надо(

Объединение двух упорядоченных последовательностей чисел в одну - C++
Нужно составить программу объединения двух упорядоченных последовательностей чисел a1 ≤ a2 ≤ ... ≤ an и b1 ≤ b2 ≤ ... ≤ bm в одну...

Из двух одинаково упорядоченных одномерных массивов k и s сформировать один массив размером k+s - C++
7.*.1. Помогите, пожалуйста, решить задачу в С++. Из двух одинаково упорядоченных одномерных массивов k и s сформировать один...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2013, 14:13
Привет! Вот еще темы с ответами:

Объединение нескольких файлов в один - C++
Здравствуйте. Использую библиотеку SFML, чтобы создать игру, и назрел такой вопрос: В игре имеется достаточное количество ресурсов. Это...

Объединение двух кодов в один - C++
Здравствуйте! Недавно начал заниматься программированием, и столкнулся со следующей задачей-перевод из 10-ой системы счисления в...

Объединение данных из N файлов в один файл - C++
Добрый день! Помогите решить следующую задачу. Существует N файлов в папке(точное количество программа должна определять сама), в...

Образовать из двух упорядоченных по неубыванию массивов один, упорядоченный по неубыванию - C++
Даны два числа m и n, и два упорядоченных по неубыванию массива A≤A≤...≤A и B≤B≤...≤B. Образовать из этих элементов упорядоченный массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru