0 / 0 / 0
Регистрация: 05.06.2018
Сообщений: 29
1

Записать в третий файл одинаковые числа из двух файлов

11.06.2018, 17:47. Показов 2517. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
имеется файл g и файл f с целыми числами. надо в файл h записать одинаковые числа из двух предыдущих файлов. вывести содержимое файлов на экран.
например, в файле g - 6,7,34,15,8
в файле f - 23,15,12,7,4
значит в файл h - 7,15
все это так же вывести и на экран
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2018, 17:47
Ответы с готовыми решениями:

Отобрать одинаковые числа из двух массивов и записать их в третий массив
Суть программами: у нас есть два массива заполнение рандомом из них нужно отобрать одинаковые числа...

В двух файлах найти одинаковые строки и записать в третий файл
Имеются два текстовых файла с одинаковым количеством строк. Переписать совпадающие строки в третий...

Записать в третий файл все начальные совпадающие элементы имеющихся двух файлов
Имеютса два файла, єлементами которого являютса отдельные буквы. Записать в третий файл все...

Для двух файлов, включающих по 21 элементу найти парные разницы элементов и записать в третий файл
Помогите пожалуйста. Часть кода я сделал, но с последней частью трудно (там где именно вычитание)...

2
837 / 640 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
11.06.2018, 19:17 2
Лучший ответ Сообщение было отмечено nura satre как решение

Решение

по простому
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
#include <sstream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <iterator>
void parse_nums(std::vector<int>& vs, std::istream& _in);
void intersect(std::ostream& _out, std::istream& _in1, std::istream& _in2);
 
int main(void){
    //для примера ввод из строк
    char s1[] = "6,7,34,15,8";
    char s2[] = "23,15,12,7,4";
    std::istringstream sp1(s1), sp2(s2);
    intersect(std::cout, sp1, sp2);
 
/*  работа с файлами
    std::ifstream fp1("g.txt");
    std::ifstream fp2("f.txt");
    std::ostringstream os;
    intersect(os, fp1, fp2);
 
    std::ofstream fout("h.txt");
    fout << os.str();
    fout.close();
    std::cout << os.str() << std::endl;
*/
    std::cin.get();
    return 0;
}
 
//пересечение
void intersect(std::ostream& _out, std::istream& _in1, std::istream& _in2){
    bool g = false;
    std::vector<int> v1, v2;
    std::vector<int>::iterator i1, i2, e1, e2;
 
    parse_nums(v1, _in1);
    parse_nums(v2, _in2);
    std::sort(v1.begin(), v1.end());
    std::sort(v2.begin(), v2.end());
    e1 = std::unique(v1.begin(), v1.end());
    e2 = std::unique(v2.begin(), v2.end());
 
    i1 = v1.begin();
    i2 = v2.begin();
    while((i1 != e1) && (i2 != e2)){
        if(*i1 < *i2)
            ++i1;
        else if(*i2 < *i1)
            ++i2;
        else {
            if(g)
                _out << ", ";
            g = true;
            _out << *i1;
            ++i2;
        }
    }
    v1.clear();
    v2.clear();
}
 
//парсирование чисел
void parse_nums(std::vector<int>& vs, std::istream& _in){
    char c;
    int  n = 0, k = 0;
    std::istreambuf_iterator<char> i(_in), e;
    vs.clear();
    for(; i != e; ++i){
        c = *i;
        if(c >= '0' && c <= '9'){
            n = n*10 + (c - '0');
            k = 1;
        } else if(k){
            vs.push_back(n);
            k = n = 0;
        }
    }
 
    if(k)
        vs.push_back(n);
}
0
0 / 0 / 0
Регистрация: 05.06.2018
Сообщений: 29
11.06.2018, 19:47  [ТС] 3
Геомеханик, посмотрите мой код, пожалуйста
у меня в файле какие-то значки ( а надо цифры) и я не знаю, как на экран вывести
Код
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

int main()
{
   FILE *f1;
   FILE *f2;
   FILE* f3;
   f1=fopen("g.txt" , "wb");
   f2=fopen("f.txt" , "wb");
    for(int i =0; i<15; i++)
    {
        fwrite (&i,sizeof(i),1,f1);
        int k = 15-i;
        fwrite (&k,sizeof(k),1,f2);
    }
    fclose(f1);
    fclose(f2);
    f1=fopen("g.txt", "rb");
    f2=fopen("f.txt", "rb");
    f3=fopen("h.txt", "wb");

    while(!feof(f1))
    {
        int i;
        fread(&i,sizeof(i),1,f1);

        while(!feof(f2))
        {
            int k;
            fread(&k,sizeof(k),1,f2);

            if (k==i)
                fwrite(&i,sizeof(i),1,f3);
        }
        fseek(f2,0,SEEK_SET);
    }
    fclose(f1);
    fclose(f2);
    fclose(f3);
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2018, 19:47
Помогаю со студенческими работами здесь

Записать в третий файл строки из первых двух файлов, чтобы они тоже располагались по алфавиту
Задача: даны два файла, строки в которых расположены по алфавиту,записать в третий файл строки из...

Записать в третий файл элементы двух файлов только заглавные английские буквы в алфавитном порядке
Pascal ABC Типизированные файлы Сформировать два символьных файла, используя ввод с клавиатуры....

Для двух файлов, включающих по 21 элементу найти парные разницы элементов и записать в третий файл
Помогите пожалуйста с кодом. Часть я сделал (но не уверен что правильно),а с последней частью не...

Различия двух файлов записать в третий
Есть 2 текстовых файла (1.txt , 2.txt) 1.txt: C:\Assch C:\boot.ini C:\CONFIG.SYS 2.txt:...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru