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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2014, 14:03   #1
pyrozhok
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 10
Лампочка Файловый ввод - вывод

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

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


Не могу посчитать плотность населения. Точнее как организовать чтение из файла данных и как проводить операции над ними.

Текстовые файлы прилагаются.

Код:
#include <stdio.h>
#include <istream>
#include <iostream>
#include <string>
#include <fstream>
#include <algorithm>
#include <iterator>
#include <list>
using namespace std;



void sort1(){
	

	/*FILE *f1, *f2;
	f1 = fopen("1.txt", "w");
	f2 = fopen("2.txt", "w");*/

	// Тут должна быть сортировка

	ifstream in("1.txt"); // файл ввода
	ofstream out("output_1.txt"); // файл вывода
	list<string> lines;

	while (!in.eof())
	{
		string s1;
		getline(in, s1, '\n');
		lines.push_back(s1);
	}
	lines.sort();
	copy(lines.begin(), lines.end(), ostream_iterator<string>(out, "\n"));
	in.close();
	out.close();
	cout << "Сортировка 1го файла"<< endl;
}

void sort2(){
		ifstream in2("2.txt"); // файл ввода
		ofstream out2("output_2.txt"); // файл вывода
		list<string> lines;

		while (!in2.eof())
		{
			string s1;
			getline(in2, s1, '\n');
			lines.push_back(s1);
		}
		lines.sort();
		copy(lines.begin(), lines.end(), ostream_iterator<string>(out2, "\n"));

		in2.close();
		out2.close();

		cout << "Сортировка 2го файла"<< endl;
	}

int vivod1() {
	string line;
	ifstream myfile("output_1.txt");
	if (myfile.is_open())
	{
		while (!myfile.eof())
		{
			getline(myfile, line);
			cout << line << endl;
		}
		myfile.close();
	}

	else cout << "Unable to open file";

	return 0;
}

int vivod2() {
	string line;
	ifstream myfile("output_2.txt");
	if (myfile.is_open())
	{
		while (!myfile.eof())
		{
			getline(myfile, line);
			cout << line << endl;
		}
		myfile.close();
	}

	else cout << "Невозможно открыть файл";

	return 0;
}

void main(){
	setlocale(LC_ALL, "rus");
	sort1();
	sort2();	
	cout << "Сортировка завершена"<< endl;
	vivod1();
	vivod2();
	system("pause");
}
Вложения
Тип файла: txt 1.txt (137 байт, 118 просмотров)
Тип файла: txt 2.txt (102 байт, 121 просмотров)
pyrozhok вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
файловый ввод-вывод lenka91 C# (си шарп) 6 13.12.2013 10:52
Файловый ввод-вывод. three_cats Общие вопросы C/C++ 4 01.10.2012 09:39
Файловый ввод\вывод ВаликАматор Общие вопросы C/C++ 0 27.02.2011 11:08
Файловый ввод вывод GrihaI Общие вопросы C/C++ 4 31.05.2010 02:45
Файловый ввод/вывод -=$V=- Общие вопросы C/C++ 8 13.12.2008 21:11