Zatwierdzenie danych po ich podaniu

Zatwierdzenie danych po ich podaniu
LA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 51
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.

Kopiuj
 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 ! :)

SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 105
0

Robisz to za pomocą pętli do while:

Kopiuj
do{
   //wczytywanie danych
   //pytanie o zatwirdzenie    
   char znak;
   cin >> znak;
}while(znak !=T)
LA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 51
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).

Kopiuj
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();
}
} 

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.