Hej,
tworzę program, który ma za zadnie operować dwoma plikami tekstowymi (jeden z angielskimi słówkami, a drugi z polskimi) i wykonywać następujące operacje:
- Przegląd słówek
- Dodawanie słówek
- Usuwanie słówek
- Generowanie i sprawdzanie testu.
Jednak pojawił się pewien problem przy usuwaniu słówek. Postanowiłem umieścić zawartość plików w dwóch wektorach, a następnie usunięcie wskazanego przez użytkownika elementu i wprowadzenie wektora z powrotem do pliku nadpisując poprzednie elementy. Jednak pojawia się błąd podczas ponownego umieszczania elementów w plikach. Oto mój kod odpowiedzialny za tą funkcję:
fstream polskie;
fstream angielskie;
vector<string> slavic;
vector<string> germanic;
vector<string> :: iterator s;
vector<string> :: iterator g;
void trzy()
{
string a,b;
polskie.open ("polskie.txt", fstream::in, fstream::out, fstream:: app);
angielskie.open ("angielskie.txt",fstream::in, fstream::out, fstream:: app);
while(polskie >> a && angielskie >> b)
{
slavic.push_back(a);
germanic.push_back(b);
}
int i = 1, numerek;
cout << "Ktory element chcesz usunac?:" << endl;
for (s = slavic.begin(); s != slavic.end(); s++)
{
cout << i << ". " << slavic[i-1] << " "<< germanic[i-1] << endl;
i++;
}
cout << endl;
cin >> numerek;
slavic.erase(slavic.begin() + numerek - 1);
germanic.erase(germanic.begin() + numerek - 1);
i = 1;
for (s = slavic.begin(); s != slavic.end(); s++)
{
cout << i << ". " << slavic[i-1] << " "<< germanic[i-1] << endl;
i++;
}
i=1;
for (s = slavic.begin(); s != slavic.end(); s++)
{
polskie << slavic[i-1] << endl;
i++;
}
polskie.close();
i=1;
for (g = germanic.begin(); g != germanic.end(); g++)
{
angielskie << germanic[i-1] << endl;
i++;
}
angielskie.close();
system("pause");
}
Dodatkowo: Czy ma ktoś pomysł jak usunąć zawartość pliku tekstowego?