Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2011, 16:44   #1
Анастасия18
Пользователь
 
Регистрация: 13.02.2011
Сообщений: 16
По умолчанию С++

Добрый день! Помогите пожалуйста решить задачу: Дан файл F, компоненты которого являются целыми числами. Получить файл G, образованный из файла F исключением повторных вхождений одного и того же числа. Преподаватель сказал, что ее надо решить, используя функции построкового ввода и вывода. Сначала данные из файла F нужно считать в массив, а затем записать их в файл G, исключая повторяющиеся числа. Помогите пожалуйста!!!
Анастасия18 вне форума Ответить с цитированием
Старый 21.05.2011, 17:16   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Код:
#include <iterator>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
#include <functional>

int main()
{
	std::ifstream ifs("F");

	typedef std::vector<int> V;
	V v;

	typedef std::istream_iterator<int> I;
	std::copy(I(ifs), I(), std::back_inserter(v));

	std::sort(v.begin(), v.end());
	v.erase(
		std::unique(v.begin(), v.end()),
		v.end()
		);

	std::ofstream ofs("G");

	typedef std::ostream_iterator<int> O;
	std::copy(v.begin(), v.end(), O(ofs, " "));

	return 0;
}
Для примера, содержимое файла F:

1 2 -10 44 2 -9 -10

После выполнения в файле G будут числа:

-10 -9 1 2 44
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц