[lekcja 26] Problem z zad.dom. (getline();)
Ostatnio zmodyfikowano 2013-09-07 22:22
Snaki Temat założony przez niniejszego użytkownika |
[lekcja 26] Problem z zad.dom. (getline();) » 2013-09-07 14:28:42 Witam. Mam problem z zadaniem domowym, mój kod: #include <iostream> #include <string>
using namespace std;
int wczytajOsobe( string & imie_i_nazwisko, int & wiek ) { cout << "Podaj imie i nazwisko: "; getline( cin, imie_i_nazwisko ); cin.clear(); cin.sync(); cout << "Podaj wiek:"; cin >> wiek; cin.clear(); cin.sync(); }
int wypiszOsobe( string & imie_i_nazwisko, int & wiek ) { cout << "Imie i nazwisko: " << imie_i_nazwisko << "wiek: " << wiek << endl; } int main() { string imie_i_nazwisko[ 2 ]; int wiek[ 2 ]; for( int i = 0; i < 2; i++ ) wczytajOsobe( imie_i_nazwisko[ i ], wiek[ i ] ); for( int i = 0; i < 2; i++ ) wypiszOsobe( imie_i_nazwisko[ i ], wiek[ i ] ); return 0; }
Problem tkwi w tym, że za pierwszym razem poprawnie wpisuje się imie_i_nazwisko, ale już za drugim razem nie. O.o Przy wpisywaniu 'wiek' wszystko jest dobrze. Jeszcze jedno, to dzieje się tylko z funkcją getline, przy 'cin' wszystko chodzi pięknie. Pozdrawiam. |
|
MrPoxipol |
» 2013-09-07 16:10:24 Nie zwracasz nic w funkcji, a chcesz zwracać int, to po pierwsze. Po drugie skompilowałem u siebie (GCC TDM 4.7.1) pod Windows i wszystko gra, nie wiem gdzie Twój problem, może używasz systemu innego niż Windows, a na innych musisz wywołać std::cin.ignore() zamiast std::cin.sync(). |
|
Snaki Temat założony przez niniejszego użytkownika |
Dzięki » 2013-09-07 22:22:39 Dziękuję. Masz rację, używam Debiana. ;d Zamykam. |
|
« 1 » |