Skocz do zawartości
_Borys

Problem Z Funkcja Cin.getline

Rekomendowane odpowiedzi

Bardzo prosze o odpowiedz co jest nie tak w ponizszej fukcji

 

 

char RolodexEntry::Input_name ( const char prompt[] ){	cout << prompt;	cin.ignore ();	cin.getline (Name,Max_name);	while ( !cin.fail()  || Name[0] == '\0' )  { 	 cin.clear (); 	 cin.ignore (INT_MAX,'\n'); 	 cout << prompt; 	 cin.getline (Name,Max_name);  }	cout << Name[Max_name];	return Name[Max_name];     }	void RolodexEntry::Pass_input_to_array ( RolodexEntry ARR [], short& Number_of_entries ){		short i = Get_number_of_entries ();	for ( i < Max_entries )  { 	 cout << " Entry number " << Number_of_entries + 1 << ":" << endl; 	 ARR [i].Name[Max_name]  = Input_name (" Input the name \n"); 	 ARR [i].Address[Max_address] = Input_address (" Input the address \n"); 	 ARR [i].Phone_number[Max_phone_number] = Input_phone_number (" Input the phone number \n"); 	 ARR [i].E_mail_address[Max_e_mail_address] = Input_e_mail_address (" Input the e-mail address \n");  	 Number_of_entries = i ++;  }	else  { 	 cerr << " ERORR! You reached the maximum nuber of entries which is " << Max_entries << " ! " << endl;     }	return;}

po uruchomieniu programu i wprowadzeniu danych program dalej prosi o wprowadzenie danych.

 

dziekuje za odpowiedz

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

nie sprawdzałem dokładnie ale cos mi nie pasuje tutaj :

 

char RolodexEntry::Input_name ( const char prompt[] ){cout << prompt;cin.ignore ();cin.getline (Name,Max_name);while ( !cin.fail()  || Name[0] == '\0' ) {  cin.clear ();  cin.ignore (INT_MAX,'\n');  cout << prompt;  cin.getline (Name,Max_name); }cout << Name[Max_name];return Name[Max_name];  }
nie za brdzo rozumiem idee tej pętli while ... przed nią pobierasz linie zawierającą imie a potem zaczynasz pętlę które trwa dopóki nie zawiedzie cin albo pierwszym znakiem imienia nie bedzie NULL tak ? Z kosu wynika że chyba najpierw pobierasz dane wszystkie dane dla każdego "entry" a tymczasem tutaj tych imion pobierasz dużo wiecej .... w petli ignorujesz znaki nowego wiersza .. jak zakańczasz w takim razie wprowadzanie danych ? .. ten warunek pętli bardzo mi nie pasuje ... <_<

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...