Moderator: xxSlayeRxx
#include <iostream>
#include <fstream>
#include <vector>
#include <conio.h>
using namespace std;
struct dane
{
string imie;
string nazwisko;
string data;
string miejsce;
};
void dodaj(dane osoba, int nr);
int numer_id();
void wyswietl();
void formularz(dane &osoba);
void kasuj_wiersz( const std::string sciezka, const size_t wiersz );
//********************************************************************************//
int main()
{
char wybor;
bool koniec=true;
while (koniec)
{
cout<<" 1 Przeglad \n 2 Dodaj osobe \n 3 Usun \n 4 Koniec \n";
cin>>wybor;
switch (wybor)
{
case '1' : wyswietl();
break;
case '2' : {
dane osobowe;
formularz(osobowe);
dodaj(osobowe, numer_id());
}
break;
case '3' :{
int num;
cout<<"Podaj ID osoby do usuniecia: ";
cin>>num;
kasuj_wiersz("dane.txt",num);
}
break;
case '4' : koniec=false;
break;
default : cout<<"Zly numer \n";
break;
}
getch();
}
cout<<endl;
return 0;
}
//**************************************************************************************//
int numer_id()
{
int i=0;
string ff;
fstream Dane( "dane.txt", ios::in );
while(getline(Dane,ff))
{
i++;
}
Dane.close();
return ++i;
}
//*******************************************************//
void dodaj(dane osoba, int nr)
{
ofstream Dane( "dane.txt", ios::app );
Dane << osoba.imie;
Dane << "\t";
Dane << osoba.nazwisko;
Dane << "\t";
Dane << osoba.data;
Dane << "\t";
Dane << osoba.miejsce;
Dane << "\n";
Dane.close();
}
//*****************************************************//
void wyswietl()
{
dane osoba;
string wiersz;
fstream Dane( "dane.txt", ios::in );
// cout <<"ID \t Imie \t Nazwisko \t Data ur. \t Miejsce ur.\n";
int i=1;
while(getline(Dane,wiersz))
{
cout<<i<<" "<<wiersz<<endl;
i++;
}
Dane.close();
}
//*********************************************************//
void formularz(dane &osoba)
{
cout << "podaj imie" << endl;
cin.sync();
cin >> osoba.imie;
cout << "podaj nazwisko" << endl;
cin.sync();
cin >> osoba.nazwisko;
cout << "podaj date urodzenia " << endl;
cin.sync();
cin >> osoba.data;
cout << "podaj miejsce urodzenia" << endl;
cin.sync();
cin >> osoba.miejsce;
}
//*********************************************************//
void kasuj_wiersz( const std::string sciezka, const size_t wiersz )
{
vector < string > vec;
ifstream in( sciezka.c_str() );
string tmp;
while( getline( in, tmp ) ) vec.push_back( tmp );
in.close();
ofstream out( sciezka.c_str() );
for( size_t i = 0; i < vec.size(); ++i ) {
if( i + 1 != wiersz ) out << vec[ i ] <<endl;
}
out.close();
}
Powrót do Zlecenia dla programistów
Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość