_Borys Opublikowano 3 Lutego 2005 Zgłoś Opublikowano 3 Lutego 2005 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 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
mathias79 Opublikowano 3 Lutego 2005 Zgłoś Opublikowano 3 Lutego 2005 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 ... <_< Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...