[ create a new paste ] login | about

Link: http://codepad.org/w5HeeqU3    [ raw code | output | fork ]

C++, pasted on Jul 28:
#include <map>
#include <string>
#include <vector>
#include <fstream>
#include <sstream>
#include <iostream>
using namespace std;

string data = 
		"Иванов Роман Михаил\n"
		"Петров Алена Ира\n"
		"Сидоров Галя\n"
		"Рыбин Олег Костя Игорь\n";

int main()
{
	string fam;  //Строка с фамилией
	string name; //Строка с именем
	string line; //Строка с текущей линией из файла

	//Ладно предположим нам зачемто сюда ещё и вектор в карту потребовался
	map<string, vector<string> > mymap;//Наша карта
	map<string, vector<string> >::iterator itMap;//Итератор для карты
	vector <string> vec;//Вектор с именами детей
	vector <string>::iterator itVec; //Итератор для вектора

	stringstream ss; 
	stringstream ifs_ss;
	ss.str(data);
	//Цикл чтения
	cout<<"input.txt :\n";
	//Хорошо читаем файл построчно
	while(getline(ss,line))
	{
		ifs_ss.sync();//Обязательно чистим буфер
		ifs_ss.str(line);
		ifs_ss>>fam;
		cout<<fam<<" ";
		//Я кнечно ХЗ зачем так сложно но ладно пусть будет с вектором
		while(ifs_ss>>name)
		{
			cout<<name<<" ";
			vec.push_back(name);
		}
			mymap.insert(make_pair(fam,vec));
			ifs_ss.clear();
			vec.clear();
			cout<<endl;
	}
	cout<<"output.txt :\n";
	for (itMap = mymap.begin(); itMap != mymap.end(); itMap++)
	{
		vec = (*itMap).second;
		for(itVec = vec.begin();itVec != vec.end(); itVec++)
				cout<<(*itVec)<<" ";
		vec.clear();
	}
	return 0;
}


Output:
1
2
3
4
5
6
7
input.txt :
Иванов Роман Михаил 
Петров Алена Ира 
Сидоров Галя 
Рыбин Олег Костя Игорь 
output.txt :
Роман Михаил Алена Ира Олег Костя Игорь Галя 


Create a new paste based on this one


Comments: