Timbaland
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору #include<iostream> #include<fstream> #include<vector> #include<string> #include<cstring> #include<algorithm> using namespace std; class ProFile { vector<vector<string>>Spys; ifstream f; char Bufeer[1024]; int Count(int i) { int cou=0; for(int j=0;j<Spys[i].size(); j++) { cou+=Spys[i][j].size(); } return cou; } public: ProFile(){} ~ProFile() { f.close(); } void Vvod() { char Temp[1024]; cout<<"Введите путь к файлу: \n\n"; gets(Temp); f.open(Temp); if(!f) { cout<<"\nФайл не открылсо \n"; cin.get(); exit(1); } } void Print() { for(int i=0;i<Spys.size();i++) { for(int j=0;j<Spys[i].size();j++) { cout<<Spys[i][j]<<" "; } cout<<"\n\n"; } } void Inform() { cout<<"\n\t\t-----Информация о файле-----\n\n"; for(int i=0;i<Spys.size();i++) { cout<<"В "<<i+1<<" строке "<<Spys[i].size()<<" слов(а) "<<", "<<Count(i)<<" букв.\n\n"; } } void Opeen() { vector<string>Str; for(int i=0;!f.eof();i++) { f>>Bufeer; Str.push_back(Bufeer); if(f.peek()=='\n') { Spys.push_back(Str); Str.clear(); } } Spys.push_back(Str); } void Sort(int sor) { for(int i=0;i<Spys.size(); i++) { sort(Spys[i].begin(),Spys[i].end()); } } void Swap(int stroka, int let1, int let2) { swap(Spys[stroka-1][let1-1],Spys[stroka-1][let2-1]); } }; int main() { setlocale (LC_ALL,"RUSSIAN"); char Path[1024]; int edit,stroka,let1,let2,sor; ProFile NEW; NEW.Vvod(); NEW.Opeen(); do { cout<<"\n1 - Вывести информацию о файле\n"; cout<<"2 - Поменять слова местами\n"; cout<<"3 - Отсортировать заданную строку\n"; cout<<"4 - Выход из программы\n=> "; cin>>edit; cout<<"\n"; switch(edit) { case 1: { system("cls"); NEW.Print(); NEW.Inform(); break; } case 2: { system("cls"); NEW.Print(); cout<<"\nВведите строку в которой будем менять\n=> "; cin>>stroka; cout<<"Введите позицию 1 слова\n=> "; cin>>let1; cout<<"Введите позицию 2 слова\n=> "; cin>>let2; cout<<"\n\n"; NEW.Swap(stroka,let1,let2); NEW.Print(); break; } case 3: { system("cls"); NEW.Print(); cout<<"\nВведите строку которую будем сортировать\n=> "; cin>>sor; cout<<"\n\n"; NEW.Sort(sor); NEW.Print(); break; } } } while(edit!=4); system("pause"); } | Всего записей: 4 | Зарегистр. 20-09-2008 | Отправлено: 16:54 01-11-2008 | Исправлено: Timbaland, 18:28 01-11-2008 |
|