Аватар для USHЁL
0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 93

Конкатенация текстовых файлов

30.08.2010, 02:00. Показов 6703. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите примерно как действовать.
Нужно соединить данные(строки)из 2ух текстовых файлов и результат вывести в выходной файл.
В каждом из файлов слова(строки) разделены пробелами:
fille_1.txt:
qwerty dert virt
maestro jackson

file_2.txt:
piano buzz
street lamp
autumn

Результат в выходном файле:
rezult_3.txt:
qwerty dert virt piano buzz
maestro jackson street lamp
autumn




спасибо,за просмотр!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.08.2010, 02:00
Ответы с готовыми решениями:

Конкатенация текстовых файлов
Доброго времени суток. Нужно объединить заданное количество текстовых файлов. Результат слияния заданных файлов должен быть отображен через...

Список файлов и конкатенация строк
Здравствуйте. В этом коде std::vector<std::string> Files(0); // вектор с файлами ...

Конкатенация + int в строку + открытие множества файлов
Заводил тему, но удовлетворительного ответа не получил. Вот что получилось: #include "stdafx.h" #include...

9
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.08.2010, 02:25
USHЁL, Две строки. В цикле до конца обоих файлов. Перед считыванием в строку проверяешь конец определенного файла, если не конец считываешь. Соединяешь две в третью. Пишешь в файл. Обнуляешь строки. Повторяешь цикл.
0
 Аватар для USHЁL
0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 93
30.08.2010, 02:52  [ТС]
Если я правильно тебя понял,то примерно так?
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
ifstream fin1;
    fin1.open("file_1.txt");
    if(!fin1.is_open())
    {
        cout<<"Ne mogu otkrit' file  file_1.txt!"<<endl;
        exit(EXIT_FAILURE);
    }
    
    ifstream fin2;
    fin2.open("file_2.txt");
    if(!fin2.is_open())
    {
        cout<<"Ne mogu otkrit' file  file_2.txt!"<<endl;
        exit(EXIT_FAILURE);
    }
    
    ofstream fout3;
    fout3.open("file_3.txt");
    if(!fout3.is_open())
    {
        cout<<"Ne mogu otkrit' file  file_3.txt!"<<endl;
        exit(EXIT_FAILURE);
    }
    string name;
    while(getline(fin1,name) != EOF)
    fout3<<name;
    while(getline(fin2,name) != EOF)
    fout3<<name;
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.08.2010, 03:07
USHЁL, Таки не совсем. Сейчас попробую накатать.
0
 Аватар для USHЁL
0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 93
30.08.2010, 03:14  [ТС]
А так? Только на выходе странно соединяет 2ой файл=(
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
ifstream fin1;
    fin1.open("file_1.txt");
    if(!fin1.is_open())
    {
        cout<<"Ne mogu otkrit' file  file_1.txt!"<<endl;
        exit(EXIT_FAILURE);
    }
    
    ifstream fin2;
    fin2.open("file_2.txt");
    if(!fin2.is_open())
    {
        cout<<"Ne mogu otkrit' file  file_2.txt!"<<endl;
        exit(EXIT_FAILURE);
    }
    
    ofstream fout3;
    fout3.open("file_3.txt");
    if(!fout3.is_open())
    {
        cout<<"Ne mogu otkrit' file  file_3.txt!"<<endl;
        exit(EXIT_FAILURE);
    }
    string name;
    while(!fin1.eof())
    {
        getline(fin1,name);
        fout3<<name;
    }
    while(!fin2.eof())
    {
        getline(fin2,name);
        fout3<<name;
    }
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.08.2010, 03:17
Как-то так

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
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <string>
#include <fstream>
 
int main()
{
   std::string First;
   std::string Second;
   std::string Third;
   std::ifstream ifs1;
   std::ifstream ifs2;
   ifs1.open("First.txt");
   if(!ifs1)
   {
      std::cerr<<"Can`t open file First.txt\n";
      return EXIT_FAILURE;
   }
   ifs2.open("Second.txt");
   if(!ifs2)
   {
      std::cerr<<"Can`t open file Second.txt\n";
      return EXIT_FAILURE;
   }
   std::ofstream ofs;
   ofs.open("Third.txt");
   if(!ofs)
   {
      std::cerr<<"Can`t open file Third.txt";
      return EXIT_FAILURE;
   }
   while(!ifs1.eof()||!ifs2.eof())
   {
      if(!ifs1.eof())
      {
         std::getline(ifs1, First);
         First+=' ';
      }
      if(!ifs2.eof())
      {
         std::getline(ifs2, Second);
      }
      Third=First+Second;
      ofs<<Third<<'\n';
      First="";
      Second="";
      Third="";
   }
   return 0;
}
1
 Аватар для USHЁL
0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 93
30.08.2010, 03:32  [ТС]
Не пойму я что то твой метод=),но он отлично работает!
Third=First+Second; строке Third присвоили количество пробелов плюс строку Second?
Как же они тогда так распределились в аккурат,непойму?

Спасибо!
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.08.2010, 03:37
USHЁL, У нас есть три строки. Мы открываем два файла на чтение и третий на запись. Проверяем открылись или нет, если нет кидаем ошибку и аварийный выход из программы. Затем, до тех пор пока !ifs1.eof()||!ifs2.eof() остается истинным (а это происходит в трех случаях: если у одного файла конец файла, у другого нет; у одного не конец, у другого конец; у обоих не конец) мы идем циклом по файлам, если конец первого то ничего не считываем в первую строку, иначе читаем. Если конец второго - ничего не считываем иначе читаем. К первому еще для удобства в конец суем пробел. Присоединяем две строки в третью - записываем третью в файл. Как только у обоих файлов eof выход из цикла - выход из программы.
1
 Аватар для USHЁL
0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 93
30.08.2010, 03:52  [ТС]
Я понял!!
Мне тут еще просто пригрезилось,что First+=' '; счётчик!!!
Усё сесибо!!!
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,692
30.08.2010, 09:34
Умные дядьки для облегчения нашей жизни придумли команду copy
Если уж так хочется чтобы был синтаксис С...
C++
1
2
3
4
5
#include <windows.h>
int main () { 
 system ("copy fail_1.txt /A+fail_2.txt /A fail_3.txt /A");           
 return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2010, 09:34
Помогаю со студенческими работами здесь

Соединение 2 текстовых файлов
#include &lt;string.h&gt; int filik (char*j, char*f, char*k) { FILE *F1, *F2, *F3; F1=fopen (j, &quot;r&quot;); if (F1==NULL) return 1; ...

Обработка текстовых файлов
Помогите написать программу для заданного файла удалить все строки, яки начинаются с &quot;*&quot;. Результат сохранить в том же файли. ...

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

Копирование текстовых файлов
Столкнулся с такой проблемой : при копировании из одного файла в другой мне нужно исключить(пропустить) слова, которые начинаются на букву,...

Обработка текстовых файлов
Я написал программу, которая выводит с файла допустим dfgdfg dfgdfg dfgdfg dfgdfg dfgdfg dfdfgdf Код: #include...


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

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

Новые блоги и статьи
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru