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

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

Восстановить пароль Регистрация
 
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
12.02.2013, 22:46     Копирование данных из файлов в файл #1
Привет, ребята! Мне необходимо написать программу, которая открывает потоки для чтения для двух файлов, и поток для записи - для одного. Я должен считать информацию с двух файлов и перекопировать ее в третий. Все бы ничего, но вот только проблема в том, что у меня должно перекопироваться следующим образов.
Вот 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;
}
Работает он неправильное, копирование происходит, но полнейший мусор (( Подскажите, где именно мой прокол?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2013, 22:46     Копирование данных из файлов в файл
Посмотрите здесь:

копирование файлов C++
C++ Копирование файлов без win api
C++ Копирование данных из файла в файл
C++ Копирование файлов
C++ Копирование файлов
копирование файлов C++
C++ Копирование файлов в папку по условию
C++ Копирование файлов через сравнение

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igor001
8 / 3 / 1
Регистрация: 12.02.2013
Сообщений: 68
13.02.2013, 10:14     Копирование данных из файлов в файл #2
я бы на твоем месте сделал для каждого файла (за исключением, разве что финального) вектор (или массив, но удобнее вектор) String и читал бы из каждого файла в свой вектор/массив а затем можешь строки раскидывай и клей как угодно в каком угодно порядке, хоть задом на переда ибо все у тебя будет как в файле и выводи куда тебе необходимо
alsav22
5282 / 4801 / 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;
}
Yandex
Объявления
13.02.2013, 11:31     Копирование данных из файлов в файл
Ответ Создать тему
Опции темы

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