Cześć
Za zadanie mam pobrać z pliku wypisane ciągi znaków, oddzielone od siebie znakiem nowego wiersza, potem umieścić je w 2 kontenerach i alfabetycznie wypisać.
Program pobiera napisy z pliku , odpowiednio zapisuje w zmiennych , potem dodaje napisy do wektorów.
Dla vectora lolek program błędnie sortuje wartości, ciąg znaków w pierwszej linijce w pliku, w wyniku posortowania program zawsze umieszcza na końcu, reszta jest w porządku .
Dla takich samych wartości w drugim pliku i w drugim vectorze nie ma problemu.
#include <iostream>
#include <fstream>
#include <iterator>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
ostream_iterator<string,char> out(cout," ");
ifstream odczyt_1 ("lolek.txt");
ifstream odczyt_2("bolek.txt");
vector<string> bolek;
vector<string> lolek;
vector <string> final;
string l;
string b;
string pomoc;
char ch;
while(odczyt_1.get(ch))
l+=ch;
while(odczyt_2.get(ch))
b+=ch;
int i = 0;
while(i < l.length())
{
while( i < l.length())
{
if(l[i] == '\n')
break;
pomoc+=l[i];
i++;
}
lolek.push_back(pomoc);
pomoc= ' ';
i++;
}
i = 0;
while(i < b.length())
{
while( i < b.length())
{
if(b[i] == '\n')
break;
pomoc+=b[i];
i++;
}
bolek.push_back(pomoc);
pomoc= ' ';
i++;
}
sort(bolek.begin(),bolek.end());
sort(lolek.begin(),lolek.end());
copy(lolek.begin(),lolek.end(),out); //ten wiersz jest blednie wypisany
cout<<endl;
copy(bolek.begin(),bolek.end(),out);
return 0;
}
//dane w pliku lolek
a
b
c
d
e
// treść w konsoli
b
c
d
e
a