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

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

Войти
Регистрация
Восстановить пароль
 
sandora
12 / 12 / 0
Регистрация: 10.02.2011
Сообщений: 42
#1

Залить два файла в один - C++

03.03.2011, 23:31. Просмотров 534. Ответов 4
Метки нет (Все метки)

пока такое вот написал, не знаю как зделать так штоб елементы которые есть в первом и втором файле не записывались по два раза, тоесть если "1" есть в первом файле, то штоб с второго файла "1" еще раз не записывалось.


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
#include <iostream>
using namespace std;
 
int main()
{
    FILE *f1, *f2;
 
    f1 = fopen( "C:\\1.txt", "a");
    f2 = fopen( "C:\\2.txt", "r");
 
    char ch;
 
    while ( (ch = getc(f2)) != EOF )
    {
        putc ( ch, f1 );
    }
 
    fclose (f1);
    fclose (f2);
 
    system("pause");
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2011, 23:31     Залить два файла в один
Посмотрите здесь:

Слить один два файла в один - C++
Подскажите как слить 1 и 2 файл в 3 файл

два файла в один - C++
При решении задачи с толкнулся с проблемой. Как содержимое двух текстовых файлов перенести в третий?

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

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

Как в проэкт запихать два срр-файла (один вызывает другой) - C++
Тело ф-ии в одном .срр а Маin в другом .срр как это сделать?? Есть проэкт. в папке Source files два срр-шника. Функция в одном а...

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

Два потока и один объект - C++
Всем привет. Пишу игру с физическим движком box2d и возникла проблема , которая в принципе к box2d относится только косвенно, поэтому не...

Объединить два массива в один - C++
Помогите с переводом pascal кода в C++ program prog0523b; uses crt; var x, y: array of integer; z: array of integer; ...

Два модуля ссылаются на один - C++
В двух модулях есть ссылка #include &quot;Geometry.h&quot; В результате ошибки: f:\projects\test7\geometry.h(9) : error C2011: 'TPoint' :...

Как, прочитав из файла один символ, выявить факт окончания файла - C++
Подскажите пожалуйста как, прочитав из файла один символ, выявить факт окончания файла


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.03.2011, 03:23     Залить два файла в один #2
C++
1
char ch;
C++
1
int ch;
загрузи данные в память, потом из памяти сохраняй в файл, проводя поиск
sandora
12 / 12 / 0
Регистрация: 10.02.2011
Сообщений: 42
06.03.2011, 00:33  [ТС]     Залить два файла в один #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
58
59
60
61
62
63
64
65
#include <iostream>
#include <stdio.h>
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Russian");
 
        FILE *f1, *f2;
 
        int n = 0, m = 0;
 
        cout<<"елементов в файле № 1 =";
        cin>>n;
        cout<<"\nелементов в файле № 2 =";
        cin>>m;
 
        char *F1 = new char[n+1];
        char *F2 = new char[m+1];
        char ch; 
        int i=0, j=0;
 
                f1 = fopen( "C:\\1.txt", "a+");
        f2 = fopen( "C:\\2.txt", "a+");
        
        do
        {
            ch = fgetc (f1);
            F1[i] = ch;
            i++;
        }
        while (ch != EOF);
 
        do
        {
            ch = fgetc (f2);
            F2[j] = ch;
            j++;
        }
        while (ch != EOF);
 
        for (int i = 0; i <= n;)
        {
            for (int j = 0; j <= m; j++)
            {
                if (F1[i] == F2[j]) i++;
                else
                    {
                        fprintf (f1,"%c", F2[j]);
                        i++;
                        }
            }
        }
        
        
        fclose (f1);
        fclose (f2);
 
        delete []F1;
        delete []F2;
 
        system("pause");
 
        return 0;
}
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.03.2011, 04:37     Залить два файла в один #4
много ошибок
C++
1
2
3
4
5
6
7
                do
                {
                        ch = fgetc (f1);
                        F1[i] = ch;
                        i++;
                }
                while (ch != EOF);
и что будет, если первый же символ EOF ?

не называй переменный большими буквами, большие буквы используются для констант
вот EOF - это константа, NULL - это константа, LC_ALL - это константа
эти константы определены через #define

ещё раз прочитай сообщение
если ты читаешь через getc()/fgetc() чего-нибудь, то она может возвращать как EOF, так и 0xFF - вещи, которые в char'е превращаются в одно и то же

вот это вот
C++
1
fprintf (f1,"%c", F2[j]);
вообще можно записать как putc(F2[j], f1);
sandora
12 / 12 / 0
Регистрация: 10.02.2011
Сообщений: 42
06.03.2011, 10:45  [ТС]     Залить два файла в один #5
Цитата Сообщение от accept Посмотреть сообщение
и что будет, если первый же символ EOF ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
do
        {
            ch = fgetc (f1);
            if (i ==0 && ch == EOF)
                {
                    cout<<"result is in file № 2";
                    return 0;
                    }
            F1[i] = ch;
            i++;
        }
        while (ch != EOF);
Цитата Сообщение от accept Посмотреть сообщение
ещё раз прочитай сообщение
поставил
C++
1
int ch;

Цитата Сообщение от accept Посмотреть сообщение
вот это вот

C++
1
fprintf (f1,"%c", F2[j]);
исправил

но как зделать етот код под файлы с разным количеством елементов, м?
Yandex
Объявления
06.03.2011, 10:45     Залить два файла в один
Ответ Создать тему
Опции темы

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