Zatwierdzenie danych po ich podaniu

0

Cześć! Czy może ktoś pomóc mi z podaną poniżej funkcją? Głupotą jest podawanie danych bezpośrednio do pliku przed wcześniejszym ich potwierdzeniem. Chciałbym aby przed zapisem każdego rekordu pytało o zatwierdzenie danych. Coś w stylu "Czy dane są poprawne [T/n]?" Jeśli tak to zapisuje do pliku jeśli nie to każe podać ponownie lub pozwala na modyfikacje.

 void dodaj_do_bazy(char *in,uczen *s,int n)
{
	ofstream plik;
	plik.open(in);

	for(int i=0;i<n;++i)
	{
		s[i].nr = i+1;
		plik<<s[i].nr<<endl;
		cout<<"Podaj Imie :\n";
		cin>>s[i].imie;
		plik<<s[i].imie<<endl;
		cout<<"Podaj Nazwisko :\n";
		cin>>s[i].nazwisko;
		plik<<s[i].nazwisko<<endl;
		cout<<"Podaj Klase:\n";
		cin>>s[i].klasa;
		plik<<s[i].klasa<<endl;
		cout<<"Podaj ocene z zachowania:\n";
		cin>>s[i].zach;
		plik<<s[i].zach<<endl;
		cout<<"Podaj srednia ocen:\n";
		cin>>s[i].srednia;
		plik<<s[i].srednia<<endl;
		plik<<"\n\n";
	}
	plik.close();
}

v

Wesołych świąt ! :)

0

Robisz to za pomocą pętli do while:

do{
   //wczytywanie danych
   //pytanie o zatwirdzenie    
   char znak;
   cin >> znak;
}while(znak !=T)
0

Chyba zrobiłem coś nie tak. Gdy robię N to co prawda kaze podac dane jeszcze raz ale dodaje błędny rekord. Dodadkowo poprawny i bledny rekord maja ta sama cyfre. Np. Dodaje swoje personalia i zrobilem to zle naciskam n. Podaje swoje personalia poprawne. Nastepnie odczytuje swoje dane i mam 2 rekordy (poprawny i bledny o numerze 1).

void dodaj_do_bazy(const char* in,uczen *s,int n)  // Dodanie do bazy, wskaznik na nazwe pliku (in) i wskaznik  s na strukture);
{
	ofstream plik;
	plik.open(in);
char znak;
	for(int i=0;i<n;++i)
	{
	do
	{
    	s[i].nr = i+1;
		plik<<s[i].nr<<endl;
		cout<<"Podaj Imie :\n";
		cin>>s[i].imie;
		plik<<s[i].imie<<endl;
		cout<<"Podaj Nazwisko :\n";
		cin>>s[i].nazwisko;
		plik<<s[i].nazwisko<<endl;
		cout<<"Klasa :\n";
		cin>>s[i].klasa;
		plik<<s[i].klasa<<endl;
		cout<<"Podaj ocene z zachowania :\n";
		cin>>s[i].zach;
		plik<<s[i].zach<<endl;
		cout<<"Podaj srednia ocen :\n";
		cin>>s[i].srednia;
		plik<<s[i].srednia<<endl;
		plik<<"\n\n";
		 cin >> znak;
	
}while(znak !='t');
	plik.close();
}
} 

1 użytkowników online, w tym zalogowanych: 0, gości: 1