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

работа с текстовым документом - C++

Восстановить пароль Регистрация
 
Kentos
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 7
06.01.2014, 18:29     работа с текстовым документом #1
дано 3 файла .txt
1.txt здесь некие данные
2.txt и здесь
3.txt здесь пусто
нужна такая программа что бы она сравнила 1 и 2 файл ,нашла совпадения и записала в 3 файл.
помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2014, 18:29     работа с текстовым документом
Посмотрите здесь:

Работа с текстовым файлом C++
работа с текстовым файлом C++
Работа с текстовым файлом C++
C++ Работа с текстовым файлом
Работа с текстовым массивом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
karaulov6
15 / 15 / 1
Регистрация: 23.03.2013
Сообщений: 140
06.01.2014, 18:31     работа с текстовым документом #2
Записать в файл нужно совпадения или те строки которые не повторяются?
Kentos
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 7
06.01.2014, 18:34  [ТС]     работа с текстовым документом #3
совпадения
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.01.2014, 20:31     работа с текстовым документом #4
Цитата Сообщение от Kentos Посмотреть сообщение
нашла совпадения
Поподробней об этом. Что считать совпадением?
vipslord
14 / 3 / 1
Регистрация: 09.12.2013
Сообщений: 33
07.01.2014, 09:22     работа с текстовым документом #5
Цитата Сообщение от Kentos Посмотреть сообщение
дано 3 файла .txt
1.txt здесь некие данные
2.txt и здесь
3.txt здесь пусто
нужна такая программа что бы она сравнила 1 и 2 файл ,нашла совпадения и записала в 3 файл.
помогите пожалуйста
Ну скачать инфу с 1 файла и второго не проблема. А вот сравнить?
Значит забиваешь все что в файлах в два разных масива. fscanf, feof, (end of file);
Создаешь третий масив.
И сравниваешь первый елемент 1 масива со всем вторым масивом. После сравниваешь второй елемент первого масива со всем вторым масивом. Найдешь совпадения? - заливай в масив три.
Сравнял все? Заливай весь третий масив в третий файл.
Актуальна работа, если мы знаем что в файле 1 и в файле 2 числа, числа длинною, например в 5 символов. Тогда легче будет код реализовать.
Всеравно я не понял какую инфу хочеш сравнить. Но все же подсказка выше.
Kentos
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 7
07.01.2014, 11:36  [ТС]     работа с текстовым документом #6
cлова

Добавлено через 17 минут
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
#include<iostream>
#include<algorithm>
#include<string>
#include<iterator>
#include<fstream>
#include<set>
 
int main(){
std::fstream fs("1.txt");
if(!fs)
{
std::cerr<<"File 1.txt not found"; 
return 1;
}
std::set<std::string> set1((std::istream_iterator<std::string>(fs)), std::istream_iterator<std::string>());
fs.close();
fs.open("2.txt");
if(!fs)
{
std::cerr<<"File 2.txt not found"; return 1;
}
std::set<std::string> set2((std::istream_iterator<std::string>(fs)), std::istream_iterator<std::string>());
fs.close();
fs.open("3.txt", std::ios::out);
std::set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(), std::ostream_iterator<std::string>(fs, "\n"));
fs.close();
вот нашел то что мне нужно , 22 ошибки ,кто может исправить ?
визуал с++ 2008

Добавлено через 10 минут
отставить
работает
но файл не открывает
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
#include "stdafx.h"
#include "iostream"
#include "algorithm"
#include "string"
#include "iterator"
#include "fstream"
#include "set"
using namespace std;
 
int main()
{
    std::fstream fs("D:\1.txt");
if(!fs)
{
std::cerr<<"File 1.txt not found"; 
return 1;
}
std::set<std::string> set1((std::istream_iterator<std::string>(fs)), std::istream_iterator<std::string>());
fs.close();
fs.open("D:\2.txt");
if(!fs)
{
std::cerr<<"File 2.txt not found"; return 1;
}
std::set<std::string> set2((std::istream_iterator<std::string>(fs)), std::istream_iterator<std::string>());
fs.close();
fs.open("D:\3.txt", std::ios::out);
std::set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(), std::ostream_iterator<std::string>(fs, "\n"));
fs.close();
}
или я как то не так путь к файлу указываю ?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.01.2014, 11:57     работа с текстовым документом #7
Цитата Сообщение от Kentos Посмотреть сообщение
не так путь к файлу указываю ?
C++
1
fs.open("D:\\2.txt");
Kentos
0 / 0 / 0
Регистрация: 06.01.2014
Сообщений: 7
07.01.2014, 11:57  [ТС]     работа с текстовым документом #8
на 2.txt какая то запара
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2014, 03:21     работа с текстовым документом
Еще ссылки по теме:

C++ Работа с текстовым файлом
C++ работа с текстовым файлом
Работа с текстовым файлом C++

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

Или воспользуйтесь поиском по форуму:
vipslord
14 / 3 / 1
Регистрация: 09.12.2013
Сообщений: 33
08.01.2014, 03:21     работа с текстовым документом #9
Цитата Сообщение от Kentos Посмотреть сообщение
но файл не открывает
Попробуй через fopen http://www.cplusplus.com/reference/cstdio/fopen/
Yandex
Объявления
08.01.2014, 03:21     работа с текстовым документом
Ответ Создать тему
Опции темы

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