Mam taki kod
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
std::fstream plik;
int ost;
std::string ciag;
int i=0;
void zobaczbaze()
{
system( "cls" );
plik.open("baza.txt");
while( !plik.eof() )
{
plik>>ost>>ciag;
std::cout<< ost<<" ";
std::cout << ciag<<std::endl;
}
plik.close();
}
void dodajuzytkownika()
{
plik.open("baza.txt", std::ios::app);
{
std::string nick1;
std::cout<<"Podaj nazwe uzytkownika: ";
std::cin>>nick1;
plik<<nick1<< " "<<i<<"\n"<<std::endl;
plik.close();
};
}
int main()
{
int wybor;
plik.open("baza.txt");
if (plik.good()!=false)
{
while( !plik.eof() )
{
plik>>ost>>ciag;
i++;
}
std::cout<< "Prawidlowo otworzono baze danych.\nCo chcesz zrobic? [wpisz numer]\n[1]Pokaz baze\t[2]Dodaj uzytkownika do bazy\n";
plik.close();
std::cin>> wybor;
switch (wybor)
{
case 1: zobaczbaze();
break;
case 2: dodajuzytkownika();
break;
default: std::cout<< "Nie mozesz tego wpisac!";
}
}
else
{
std::cout << "Dostep zabroniony";
}
return 0;
}
Plik baza.txt:
1 ss
2 h
Program działa, ale nie wykonuje jednej rzeczy.
W funkcji dodajuzytkownika nie działa to:
plik<<nick1<< " "<<i<<std::endl;
Zamiast dopisać id i nazwę użytkownika na końcu pliku nic nie robi :/.