Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 13

Прочитать данные из двух указанных файлов, содержащих записи с названиями книг

21.06.2016, 00:50. Показов 1764. Ответов 27
Метки нет (Все метки)

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

Добавлено через 3 часа 53 минуты
Люди добрые, прошу скорейшего ответа! Дело срочное! Заранее СПАСИБО!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.06.2016, 00:50
Ответы с готовыми решениями:

В определенной директории, прочитать все имена файлов и создать папки, с названиями этих файлов
В общем Моя задача, в определенной директории, прочитать все имена файлов и создать папки, с названиями этих файлов. Вот код: namespace...

Как прочитать данные из двух файлов Excel?
Всем привет) Ребята, нужна ваша помощь! Есть два файла excel, у каждого файла есть две колонки мне надо считать данные из обеих файлов и...

Поиск и вывод на экран совпадающих имён файлов в двух папках, указанных пользователем
Всем привет, ребят есть проблема( Не шарю я в батниках, а тут как на зло еще подсунули задачку сложную( Помогите пожалуйста. Задание: ...

27
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,030
Записей в блоге: 1
21.06.2016, 02:32
Цитата Сообщение от TiD152 Посмотреть сообщение
прошу скорейшего ответа
Какого ответы Вы ждете?
Вы хотите чтобы Вам написали такую программу за Вас?
Это возможно, но только если:
1) у кого-то уже есть такая,
2) кому-то нечего делать,
3) кого-то заинтересовало задание
То есть, вероятность такого исхода стремится к нулю.
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
21.06.2016, 05:47
Ну делай по алгоритму:
Открываешь 2 потока ofstream и ifstream для 2-х файлов.
Если нужно заполнить, то заполняй прям в своей программе файл через ofstream
Далее читаешь этот файл через ifstream в массив структур, чтобы был автоматически расширяемым через условие сделай себе так, только память не забудь освободить в конце программы.
C++
1
структура* TEMP = new структура[n + 1];
Закрываешь все потоки и открываешь новый ofstream для записи в 3-й файл.
Сравниваешь элементы структуры через
C++
1
strcmp
и если они идентичны, то записываешь в 3-й файл.
Закрываешь поток, освобождаешь память, если нужно то показываешь содержимое файла через ifstream.

Если что-то не то, то кидайте код и ошибку, поможем
0
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 13
21.06.2016, 11:40  [ТС]
Спасибо за совет, буду делать.
0
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 13
23.06.2016, 16:35  [ТС]
Господа форумчане! Подскажите неграмотному , как правильно начать писать выше указанную программу. Не прошу писать весь код, только начало. Только начинаю изучать с++ на курсах.
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
23.06.2016, 17:02
Вот моя старая лабораторная, ее попробуйте переделать под свою: уберите лишнее из структуры и сравнение измените, вывод в другой файл я вам сказал, как делать - через ofstream
Цитата Сообщение от TiD152 Посмотреть сообщение
Господа форумчане! Подскажите неграмотному , как правильно начать писать выше указанную программу. Не прошу писать весь код, только начало. Только начинаю изучать с++ на курсах.
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
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
 
struct kostum {
    char type[30];  //тип
    int size;       //размер
    int charge;     //расход
    int price;      //цена
};
const int k = 1;
kostum mas[k];
 
void main()
{
    remove("kostum.txt");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout << "Кол-во товара, который хотите добавить: ";
    int n;
    cin >> n;
    system("cls");
    ofstream fout;
    fout.open("kostum.txt", ios::app, ofstream::trunc);
    for (int i = 0; i < n; i++)
    {
        cout << "============================" << endl;
        cout << "[" << i + 1 << "]" << "Тип формы:  ";
        cin >> mas[i].type;
        fout << "[" << i + 1 << "]" << "Тип формы: " << mas[i].type << endl;
        cout << "Размер: ";
        cin >> mas[i].size;
        fout << "Размер: " << mas[i].size << endl;
        cout << "Расход ткани: ";
        cin >> mas[i].charge;
        fout << "Расход ткани: " << mas[i].charge << endl;
        cout << "Цена: ";
        cin >> mas[i].price;
        fout << "Цена: " << mas[i].price << endl;
        cout << "\n";
    }
    fout.close();
 
    ifstream fin;
    fin.open("kostum.txt");
 
    if (!fin.is_open())
    {
        cout << "Такого файла не существует!";
    }
 
    cout << "Введите размер: ";
    int a, b(0);
    cin >> a;
    system("cls");
    cout << "========================================================" << endl;
    cout << "По данному запросу найдено: " << endl;
    for (int i = 0; i < n; i++)
    {
        if (a == mas[i].size)
        {
            b++;
            {
                if (b > 0)
                    cout << "Тип формы: " << mas[i].type << ", Размер: " << mas[i].size << ", Расход ткани: " << mas[i].charge << ", Цена: " << mas[i].price << endl;
                else
                    cout << "Такого размера нет!";
            }
        }
    }
    cout << "========================================================" << endl;
    fin.close();
    system("pause");
}
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
24.06.2016, 12:30
Цитата Сообщение от TiD152 Посмотреть сообщение
nstwf, А личные сообщения писать можно? Есть вопросик один
Ничто не ограничивает, можно и в тему, так вероятность больше, что тебе ответят, ибо я не далеко не все знаю

Добавлено через 12 часов 47 минут
Цитата Сообщение от TiD152 Посмотреть сообщение
Программа должна прочитать данные из двух указанных файлов, содержащих записи с названиями книг (число записей может быть различно и заранее неизвестно). Данные нужно предварительно загрузить в два динамически расширяемых массива, проанализировать и сохранить в новом файле те названия, которые встречаются в обоих массивах.
Доделаете проверку на открытие файла и если нужно, то оформите в функциях.
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
#include <fstream>
#include <Windows.h>
#include <string>
using namespace std;
 
int stramount(string filename)
{
    int d = 0;
    ifstream fout(filename);
    while (!fout.eof())
    {
        if (fout.get() == '\n')
            d++;
    }
    return d;
}
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string str1, str2 , str3;
    //------------------------------------------------------//
    cout << "Введите название 1-го файла: ";
    cin >> str1;
    ifstream fin1(str1);
    int s1 = stramount(str1);
    string *bstr1 = new string[s1];
    if (fin1.is_open())
    {
        system("cls");
        cout << "Файл <" << str1 << "> успешно открыт!\n\nКоличество книг в файле: " << s1 << ".";
    }
    cout << endl << "Содержимое файла <" << str1 << ">:\n";
    for (int i = 0; i < s1; i++)
    {
        fin1 >> bstr1[i];
        cout << i + 1 << ". " << bstr1[i] << endl;
    }
    system("pause");
    system("cls");
    //------------------------------------------------------//
    cout << "Введите название 2-го файла: ";
    cin >> str2;
    ifstream fin2(str2);
    int s2 = stramount(str2);
    string *bstr2 = new string[s2];
    if (fin2.is_open())
    {
        system("cls");
        cout << "Файл <" << str2 << "> успешно открыт!\n\nКоличество книг в файле: " << s2 << ".";
    }
    cout << endl << "Содержимое файла <" << str2 << ">:\n";
    for (int i = 0; i < s2; i++)
    {
        fin2 >> bstr2[i];
        cout << i + 1 << ". " << bstr2[i] << endl;
    }
    system("pause");
    system("cls");
    //------------------------------------------------------//
    cout << "Введите название 3-го файла: ";
    cin >> str3;
    ofstream fout(str3);
    system("cls");
    cout << "Совпадения: " << endl;
    for (int i = 0; i < s1; i++)
    {
        for (int j = 0; j < s2; j++)
        {
            if (bstr1[i] == bstr2[j])
            {
                cout << bstr1[i] << endl;
                fout << bstr1[i] << "\n";
            }
        }
    }
    system("pause");
    system("cls");
    fout.close();
    //------------------------------------------------------//
    ifstream fin3(str3);
    int s3 = stramount(str3);
    string *bstr3 = new string[s3];
    if (fin3.is_open())
    {
        system("cls");
        cout << "Файл <" << str3 << "> успешно открыт!\n\nКоличество книг в файле: " << s3 << ".";
    }
    cout << endl << "Содержимое файла <" << str3 << ">:\n";
    for (int i = 0; i < s3; i++)
    {
        fin3 >> bstr3[i];
        cout << i + 1 << ". " << bstr3[i] << endl;
    }
    //------------------------------------------------------//
    delete[] bstr1;
    delete[] bstr2;
    delete[] bstr3;
    fin1.close();
    fin2.close();
    fin3.close();
    system("pause");
}
0
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 13
26.06.2016, 23:21  [ТС]
nstwf, Бро!А не мог бы закоментить, что и гдепроисходит? Я более-менее понимаю, но чтоб не тупануть перед преподом...И по поводу благотворительности...
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
26.06.2016, 23:23
Цитата Сообщение от TiD152 Посмотреть сообщение
nstwf, Бро!А не мог бы закоментить, что и гдепроисходит? Я более-менее понимаю, но чтоб не тупануть перед преподом...И по поводу благотворительности...
Скажи, в каких моментах именно не понятно(номер строки)?
0
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 13
26.06.2016, 23:48  [ТС]
nstwf,Попытался собрать, 3 ошибки 30 строка и 7
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2371 main: переопределение; различные базовые типы Books1
Ошибка C2556 void main(void): перегруженная функция отличается от "int main(void)" только возвращаемым типом Books1 30
Ошибка (активно) не удается перегрузить функции, различаемые только по типу возвращаемого значения

Добавлено через 3 минуты
С 83 по 96 происходит сравнение двух массивов и запись в 3й файл?
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
27.06.2016, 00:01
Цитата Сообщение от TiD152 Посмотреть сообщение
С 83 по 96 происходит сравнение двух массивов и запись в 3й файл?
Нет, там мы открываем 3-й файл, в котором содержатся совпадающие книги.
Цитата Сообщение от TiD152 Посмотреть сообщение
nstwf,Попытался собрать, 3 ошибки 30 строка и 7
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2371 main: переопределение; различные базовые типы Books1
Ошибка C2556 void main(void): перегруженная функция отличается от "int main(void)" только возвращаемым типом Books1 30
Ошибка (активно) не удается перегрузить функции, различаемые только по типу возвращаемого значения
Visual Studio 2015 - ни одной ошибки.
Создайте в каталоге с программой 2 текстовых файла, заполните и откройте их в программе, указав название по очереди.
0
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 13
27.06.2016, 00:01  [ТС]
nstwf, Исправил, мой косяк! Но теперь при отладке после ввода 1го файла больше ничего не происходит
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
27.06.2016, 00:02
Программа работает следующим образом:
Создаем 2 файла в каталоге с программой.
При запросе 1-го названия файла, вводим - выводится количество книг и содержимое файла.
При запросе 2-го названия файла, вводим - выводится количество книг и содержимое файла.
При запросе 3-го названия файла, он сравнивает содержимое 1 и 2 файлов, совпадения - записывает в 3-й файл.
В конце открывает содержимое файла, в котором сохранены совпадения.
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
27.06.2016, 00:05
Без очистки экрана:
Миниатюры
Прочитать данные из двух указанных файлов, содержащих записи с названиями книг  
0
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 13
27.06.2016, 00:07  [ТС]
nstwf, При запросе ввода первого файла, мы должны указать уже имеющийся у нас .txt файл?
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
27.06.2016, 00:08
Цитата Сообщение от TiD152 Посмотреть сообщение
nstwf, При запросе ввода первого файла, мы должны указать уже имеющийся у нас .txt файл?
Да, программа же должна откуда-то брать данные.
0
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 13
27.06.2016, 00:09  [ТС]
nstwf, В папке Debug файлы должны лежать?
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
27.06.2016, 00:10
Цитата Сообщение от TiD152 Посмотреть сообщение
В папке Debug файлы должны лежать?
Нет, файлы ложишь в директорию с файлом Source.cpp
0
0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 13
27.06.2016, 00:10  [ТС]
nstwf, Просто если не в дэбаг,то он ругался что не мог открыть
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
27.06.2016, 00:12
Вот проект, просто вводите названия файлов.
Вложения
Тип файла: rar test.rar (372.8 Кб, 8 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.06.2016, 00:12
Помогаю со студенческими работами здесь

Сравнить данные двух столбцов разных книг
Есть 2 книги, в них n-ое количество данных: Необходимо: 1. сравнить данные 2-х столбцов из разных книг. 2. при совпадении данных, из...

Как объединить данные двух книг не открывая вторую
Доброе время суток подскажите как объединить данные с двух разных книг. Есть один документ он ведёт подсчет за месяц, а второй документ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru