Witam potrzebuję pomocy. Muszę posortować alfabetycznie linie tekstu które wczytałem.
W przypadku wczytanego pliku nowa jest linia jest po enterze. Natomiast przydałoby się też aby tak było jak wprowadzam tekst z klawiatury tzn. zrobić, aby każde zdanie było zakończone eneterem.
Co do sortowania to nie wiem jak ustawić aby sortował bo pierwszej literze każdej linii.
#include <iostream>
#include <fstream>
#include <conio.h>
#include <cstdlib>
#include <string>
using namespace std;
void sortowanie(string tekst){
}
void wczytaj_plik ()
{
int wybor;
ifstream plik;
string nazwapliku,tekst;
do{
string linia;
fstream plik;
string nazwapliku;
cout <<"Podaj nazwe pliku bez "".txt"", z ktorego wczytac tekst: ";
cin >> nazwapliku;
nazwapliku+=".txt";
plik.open(nazwapliku.c_str());
if(plik.is_open())
{
while(!plik.eof())
{
getline(plik, linia);
cout << linia << endl; //wyświetlenie linii
}
plik.close();
sortowanie(tekst);
wybor=2;
}
else
{
cout <<"Problem z odczytem pliku. \nBrak pliku o takiej nazwie, lub plik nie jest plikiem .txt";
cout <<"\n\n1.Podaj nazwe ponownie.\n2.Wyjdz.\n\nWybor: ";
do{
cin >> wybor;
if(!cin || wybor!=1 && wybor!=2)
{
cout <<"\nPodaj poprawna liczbe: ";
cin.clear();
cin.sync();
}
}while(!cin || wybor!=1 && wybor!=2);
}
}while(!cin || wybor==1 );
}
void wprowadzony()
{
string tekst;
cout <<"Podaj tekst, ktory zostanie posortowany: ";
cin.clear();
cin.sync();
getline(cin, tekst);
sortowanie(tekst);
}
main()
{
int wybor;
cout << "Program, ktory posortuje alfabetycznie linie tekstu ";
cout << "Tekst zostanie wyswietlony w programie oraz\nzapisany do pliku w katalogu z programem.\n";
cout << "1 - Sortowanie tekstu z pliku.\n";
cout << "2 - Sortowanie tekstu wpisanego przez uzytkownika w programie.\n";
do{
cin >> wybor;
if(!cin || wybor!=1 && wybor!=2)
{
cout <<"\nPodaj poprawna liczbe: ";
cin.clear();
cin.sync();
}
}while(!cin || wybor!=1 && wybor!=2);
if(wybor==1)
wczytaj_plik();
else
wprowadzony();
return 0;
}