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

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

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

Копирование данных из файлов в файл - C++

12.02.2013, 22:46. Просмотров 512. Ответов 2
Метки нет (Все метки)

Привет, ребята! Мне необходимо написать программу, которая открывает потоки для чтения для двух файлов, и поток для записи - для одного. Я должен считать информацию с двух файлов и перекопировать ее в третий. Все бы ничего, но вот только проблема в том, что у меня должно перекопироваться следующим образов.
Вот 1-й файл:
eggs kites donuts
balloons hammers
stones
Вот 2-й файл:
zero lassitude
finance drama
В 3-м файле должно быть следующее:
eggs kites donuts zero lassitude
balloons hammers finance drama
stones
Вот мой код:
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
50
51
52
53
54
55
56
57
#include <iostream>
using namespace std;
#include <fstream>
#include <cstdlib>
const char * file_one="File1.dat";
const char * file_two="File2.dat";
const char * final="Final.dat";
const int size=256;
int main()
{
    char ch[size];
    ifstream fin_one;
    ifstream fin_two;
    ofstream fout;
    fin_one.open(file_one, ios::in);
    fin_two.open(file_two, ios::in);
    fout.open(final,ios::app|ios::out);
    if(!fin_one.is_open()||!fin_two.is_open()||!fout.is_open())
    {
        cerr<<"Error!!\a\n";
        exit(0);
    }
    int i,j,k,ct;
    for(j=0;j<3;j++)
    {
        for(i=0;i<size;i++)                 //Считывает символы с 1-го файла до тех пор, пока не наткнется на новую строку
        {
            if(!fin_one.eof()||fin_one.get()!='\n')
            {
                fin_one.get(ch[i]); //считал символ в массив
                fout<<ch[i];        //скопировал его в третий файл
            }
            else
                break;
        }
        fout<<" ";
        for(k=0;k<size;k++)                 //Считывает символы со 2-го файла до тех пор, пока не наткнется на новую строку
        {
            if(!fin_two.eof()||fin_two.get()!='\n')
            {
                fin_two.get(ch[k]); //считал символ в массив со 2-го файла
                fout<<ch[k];        //скопировал его в 3-й файл
            }
            else
                break;
        }
        fout<<"\n";
    }
    fin_one.clear();
    fin_one.close();
    fin_two.clear();
    fin_two.close();
    fout.clear();
    fout.close();
    system("pause");
    return 0;
}
Работает он неправильное, копирование происходит, но полнейший мусор (( Подскажите, где именно мой прокол?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2013, 22:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Копирование данных из файлов в файл (C++):

Копирование данных из файла в файл - C++
Здравствуйте! Нужно организовать копирование данных из одного файла в другой в бинарном режиме. При выполнении программы в выходной...

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

Русско-английский словарь. Ввод данных с двух файлов. Вывод результата в файл - C++
Здравствуйте, сама задача: Даны два текстовых файла - в первом расположены русские слова, во втором их англоязычный перевод. Создать...

Копирование файлов - C++
Народ, дайте пожалуйста исходник копирования файлов по принципу &quot;открыть файл1 -&gt; считать в буфер содержимое -&gt; открыть файл2 -&gt; заменить...

Копирование файлов - C++
Приветствую. Пытался написать программу для копирования содержимого одного файла в другой: #include &lt;iostream&gt; #include...

Копирование файлов C++ - C++
Прошу помочь найти в чем здесь ошибка. Условие: Дан текстовый файл на русском языке. Скопировать содержимое данного файла в новый...

2
igor001
8 / 3 / 1
Регистрация: 12.02.2013
Сообщений: 68
13.02.2013, 10:14 #2
я бы на твоем месте сделал для каждого файла (за исключением, разве что финального) вектор (или массив, но удобнее вектор) String и читал бы из каждого файла в свой вектор/массив а затем можешь строки раскидывай и клей как угодно в каком угодно порядке, хоть задом на переда ибо все у тебя будет как в файле и выводи куда тебе необходимо
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.02.2013, 11:31 #3
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
50
51
52
53
54
55
56
57
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
 
const char * file_one="File1.dat";
const char * file_two="File2.dat";
const char * final="Final.dat";
const int size=256;
 
int main()
{
    char ch[size];
    ifstream fin_one;
    ifstream fin_two;
    ofstream fout;
    fin_one.open(file_one, ios::in);
    fin_two.open(file_two, ios::in);
    fout.open(final,ios::app|ios::out);
    if(!fin_one.is_open()||!fin_two.is_open()||!fout.is_open())
    {
        cerr<<"Error!!\a\n";
        system("pause");
        exit(0);
    }
    
    int i,j,k,ct;
    
    for(j=0;j<3;j++)
    {
        for(i=0;i<size;i++) //Считывает символы с 1-го файла до тех пор, пока не наткнется на новую строку или конец файла
        {
            fin_one.get(ch[i]); //считал символ в массив
            if(fin_one.eof() || ch[i] == '\n') break;
            fout<<ch[i];        //скопировал его в третий файл
        }
            
        fout<<" ";
        for(k=0;k<size;k++) //Считывает символы со 2-го файла до тех пор, пока не наткнется на новую строку или конец файла
        {
            fin_two.get(ch[k]); //считал символ в массив со 2-го файла
            if(fin_two.eof() || ch[k] == '\n') break;
            fout<<ch[k];        //скопировал его в 3-й файл
       }
    fout<<"\n";
    }
    
    fin_one.clear();
    fin_one.close();
    fin_two.clear();
    fin_two.close();
    fout.clear();
    fout.close();
    
    system("pause");
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2013, 11:31
Привет! Вот еще темы с ответами:

копирование файлов - C++
Зраствуйте можете подсказать алгоритм копирования файлов любого типу(разширения)??

копирование файлов - C++
Всем приятного времени суток! Мне нужно просто скопировать файл, вроде ничего сложного) Сделал так: #include &lt;stdio.h&gt; #include...

Копирование, сортировка файлов - C++
Добрый день! У меня в папке много различных файлов необходимо, переместить или скопировать их по различным созданным папкам(сортировка не...

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


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

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

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