Witam, mam problem z pewnym zadaniem, siedze nad nim i nie wiem gdzie popełniłem błąd.
Dopiero się uczę więc proszę o wyrozumiałość :)
Zadanie: Masz plik imiona.txt, wczytujesz z niego dane do programu, a program szuka po wierszach i jeśli imie jest damskie to zapisuje je w pliku damskie.txt, jak męskie to analogicznie. Kolejność wierszy zgodna z tymi w imiona.txt. (Na koniec w programie sobie zliczam jeszcze)
Takie coś nabazgrałem:
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
fstream plik, plikk, plikm;
int kobiety = 0;
int mezczyzni = 0;
plik.open("imiona.txt", ios::in);
{
if (plik.good() == false)
{
cout << "Nie ma takiego pliku!" << endl;
exit(0);
}
else
{
string linia[50];
int nrl = 0;
while (!plik.eof())
{
getline(plik, linia[nrl]);
nrl++;
}
plikk.open("kobiety.txt", ios::out);
plikm.open("mezczyzni.txt", ios::out);
for (int i = 0; i <= nrl; i++)
{
int dlugosc = linia[i].length();
if (linia[i][dlugosc - 1 == 'a'])
{
plikk << linia[i] << endl;
kobiety++;
}
else
{
plikm << linia[i] << endl;
mezczyzni++;
}
i++;
}
plikk.close();
plikk.clear();
plikm.close();
plikm.clear();
}
cout << kobiety << endl;
cout << mezczyzni << endl;
}
return 0;
}
Do pliku kobiety.txt zapisuje prawie dobrze (nie chce zapisać np imienia Paulina nie wiedzieć czemu). Do pliku mezczyzni.txt nie chce zapisać.
Proszę o pomoc.
Pozdrawiam.