Witam.
Piszę program zaliczeniowy, który jest słownikiem. Po wpisaniu słowa on przeszukuje za nim w slownik.dat <pisanym w="w" notatniku="notatniku"> i zwraca całą linijkę definicji tego słowa.
Mam mniej więcej takie problemy z moim programem:
- Nie mogę go dobrze zapętlić by po każdym zwróconym słowie <bądź błędzie, że nie ma danego słowa> wrócił do menu gł.
- Nie wyskakuje komunikat, że nie ma danego słowa w slowniku.dat tylko Od razu wywala mi program.
- W 2 punkcie nie wiem jak napisać by program, po wciśnięciu '2' otworzył slownik.dat w notatniku w ramach edycji notatnika. Chyba, że łatwiej było by edytować slownik.dat za pomocą programu?
#include <bitset>
#include <iostream>
#include <fstream>
using namespace std;
void end (void);
class Slownik
{
public:
string dane, slowo, szukaj;
};
int main(int argc, char *argv[])
{
Slownik slo;
slo.dane = "";
slo.slowo = "";
slo.szukaj;
char wybor, t, odp;
do
{
cout << " 1 - Slownik pojec informatycznych " << endl;
cout << " 2 - Edytowanie slownika " << endl;
cout << " 3 - Wyjscie z programu " << endl; cout << " ";
cout << ">"; cin >> wybor; cout << endl;
switch(wybor)
{ case '1':
{ string linia, dane;
bool c=0;
ifstream u;
u.open("slownik.dat");
if (!u.is_open())
{ cout << " Error 001: Nie istnieje baza danych z definicjami";
end();
exit(EXIT_FAILURE);
}
ifstream szukaj("slownik.dat");
cout << " Szukany slowo: ";
cin >> slo.szukaj;
while(!szukaj.eof())
{
szukaj >> slo.dane;
if(c==0)
if(slo.szukaj==slo.dane)
{
getline(szukaj,linia);
dane+=linia;
cout << " " << slo.szukaj << " - " << linia << endl;
if(linia==".")
{ ;
}
end();
c=1;
u.close();
return 1;
}
else
c=0;
}
if(c==0)
cout << "Error 002. brak danych w slowniku";
cout << " Czy chcesz powrocic do menu?? t/n? " << endl;
}
}
}while (odp=='t');
}
void end(void)
{
char c;
cin >> c;
}
q: najpierw sie naucz formatowac kod..