Предыдущий пост -

Запись слов в файл.

Рубрика: C++, Дата: 14 May, 2013, Автор:

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

От пример кода когда слова разделены просто пробелами.

//запись слов в файл в алфавитном порядке
#include <iostream>
using std::cout;
using std::endl;
using std::ios;
using std::cerr;
#include <cstdlib>
using std::exit;
#include <string>
using std::string;
#include <list>;
using std::list;
#include <fstream>
using std::ofstream;

int main()
{
	string str="hellow world gacpada da da da val makar";
	list<string> vec;
	int pos,pos1;
	string s;

	//разбиваем на слова
	pos=0;
	while(pos!=string::npos)
	{
		pos1=str.find(' ',pos);
		if(pos1!=string::npos)
		{
			s=str.substr(pos,pos1-pos);
			cout <<s<<endl;
			vec.push_back(s);
			pos=pos1+1;
		}
		else
		{
			s=str.substr(pos);
			cout <<s<<endl;
			vec.push_back(s);
			break;
		}
	}//конец while

	//вывод списка
	cout <<endl<<endl;
	vec.sort();
	list<string>::iterator it;
	
	for(it=vec.begin();it!=vec.end();++it)
		cout <<*it<<endl;

	//запись в файл
	ofstream w("hellow.txt",ios::out);
	if(!w)
	{
		cerr <<"don't open fine"<<endl;
		exit(1);
	}

	for(it=vec.begin();it!=vec.end();++it)
	{
		w <<*it<<endl;
	}


	return 0;
}

А теперь пример кода, когда слова разделены символом, например ‘*’.

//запись слов в файл в алфавитном порядке
#include <iostream>
using std::cout;
using std::endl;
using std::ios;
using std::cerr;
#include <cstdlib>
using std::exit;
#include <string>
using std::string;
#include <list>;
using std::list;
#include <fstream>
using std::ofstream;

int main()
{
	string str="hellow*world*gacpada*da*da*da*val*makar";
	list<string> vec;
	int pos,pos1;
	string s;

	//разбиваем на слова
	pos=0;
	while(pos!=string::npos)
	{
		pos1=str.find('*',pos);
		if(pos1!=string::npos)
		{
			s=str.substr(pos,pos1-pos);
			cout <<s<<endl;
			vec.push_back(s);
			pos=pos1+1;
		}
		else
		{
			s=str.substr(pos);
			cout <<s<<endl;
			vec.push_back(s);
			break;
		}
	}//конец while

	//вывод списка
	cout <<endl<<endl;
	vec.sort();
	list<string>::iterator it;
	
	for(it=vec.begin();it!=vec.end();++it)
		cout <<*it<<endl;

	//запись в файл
	ofstream w("hellow.txt",ios::out);
	if(!w)
	{
		cerr <<"don't open fine"<<endl;
		exit(1);
	}

	for(it=vec.begin();it!=vec.end();++it)
	{
		w <<*it<<endl;
	}


	return 0;
}

Ну и все на этом.

[youtube]http://www.youtube.com/watch?v=0R01ioUmrPw[/youtube]

rss