Mam taki plik:
%0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%1 %0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%2 %0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%3 %0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%4 %0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%5 %0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%6%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
KOT
PIES
PAPUGA
Chcę go przeczytać do wektora pomijając pierwsze 7 linii. Kolejne słowa czytam, wrzucam do wektora. Po czym chcę poznać długość takiego słowa, wyswietlić tyle gwiazdek, ile ma słowo, jednak dla słowa KOT pokazuje mi, że słowo to ma długość 7 i wyświetla 7 gwiazdek ... o tak:
KOT:7
Co jest źle?
#include <fstream>
#include <iostream>
#include <vector>
#include <string>
#include <cstdlib>
#include <sstream>
void pominLinie(std::istream& we, int linie)
{
std::string s;
for (; linie; --linie)
std::getline(we, s);
}
int main()
{
std::vector<std::string> slowa;
std::ifstream plik("2.dic");
if(!plik)
{
std::cout << "Blad podczas otwarcia pliku \'" << "2.dic" << "\'\n";
exit(-1);
}
else
{
std::string slowo = "";
pominLinie(plik, 7);
while (std::getline(plik, slowo))
{
std::stringstream tnij;
tnij << slowo;
slowo.clear();
tnij >> slowo;
slowa.push_back(slowo);
}
slowo = "";
}
/*for(unsigned int i=0; i<slowa.size(); i++)
{
std::cout << slowa[i] << " ";
}
std::cout << "\n";*/
std::cout << slowa[0] << ":" << slowa[0].length() << "\n";
std::string s = slowa[0], d = "";
for (unsigned int i=0; i<s.length(); i++)
{
d += "*";
};
std::cout << d << "\n";
}
Dodam, że jak wpisze na sztywno slowo[0] = "KOT"; jest ok ...