insulator Temat założony przez niniejszego użytkownika |
zadanie kontrolne ciagi znakow lancuchy » 2012-02-12 18:07:16 Witam, mam proble z rozwiazaniem zadania kontrolnego na tej stronie http://cpp0x.pl/kursy/Kurs-C++/Ciagi-znakow-lancuchy/299. Mój obecny kod wyglada tak: #include<iostream> using namespace std; string podaj_marke( string mr[], int & li ) { int j = 1; mr[ li ]; for( int i = 0; i < li; i++ ) { cout << "podaj marke samochodu nr " << j << " "; j++; getline( cin, mr[ i ] ); } return mr[ li ]; } string podaj_model( string mo[], int & li ) { int j = 1; for( int i = 0; i < li; i++ ) { cout << "podaj model samochodu nr " << j << " "; j++; getline( cin, mo[ i ] ); } return mo[ li ]; } float podaj_poj_sil( float sil[], int & li ) { int j = 1; for( int i = 0; i < li; i++ ) { cout << "podaj pojemnosc silnika nr " << j << " "; j++; cin >> sil[ i ]; cin.clear(); cin.ignore( 1000, '\n' ); } return sil[ li ]; } int podaj_pr_max( int pred[], int & li ) { int j = 1; for( int i = 0; i < li; i++ ) { cout << "podaj predkosc maksymalna camochodu nr " << j++<< " "; cin >> pred[ i ]; cin.clear(); cin.ignore( 1000, '\n' ); } return pred[ li ]; } void wyswietl_dane( string mr[], int & li, string mod[], int & li2, float sil[], int & li3, int pred[], int & li4 ) { for( int i = 0; i < 3; i++ ) { cout << mr[ i ] << "; " << mod[ i ] << "; " << sil[ i ] << "; " << pred[ i ] << endl; } } int main() { int zak = 3; string marki[ zak ]; string model[ zak ]; float silnik[ zak ]; int predkosc[ zak ]; podaj_marke( marki, zak ); podaj_model( model, zak ); podaj_poj_sil( silnik, zak ); podaj_pr_max( predkosc, zak ); wyswietl_dane( marki, zak, model, zak, silnik, zak, predkosc, zak ); return 0; }
Program się kompiluje, wszystko dobrze żadnych ostrzeżeń itd. lecz po wpisaniu trzech wartosci do stringow wywala taki blad terminate called after throwing an instance of 'std::lenght_error' what(): basic_string::_S_create
Proces returned -1
Jak dalem w komentarz tablice string to tablica int i float wyswietla sie prawidlowo. |
|
GoldWolf |
» 2012-02-13 09:59:15 mnie się nie kompiluje |
|
GoldWolf |
» 2012-02-13 09:59:19 << double post >> |
|
GoldWolf |
» 2012-02-13 09:59:20 << double post >> |
|
insulator Temat założony przez niniejszego użytkownika |
» 2012-02-13 12:07:58 @GoldWolf
Mi program nadal sie poprawnie kompiluje. Pewnie jest to zwiazane z tym, ze programuje na linuxie.
Już rozwiazalem to zadanie uzywajac tablicy char, ale nadal nie rozumiem jaki blad popelniłem wcześniej. Fajnie byłoby jakby ktoś to wyjaśnił.
|
|
malan |
» 2012-02-13 19:43:29 Jak mógł Ci się skompilować program, w którym nie podajesz typu zmiennej - mr[ li ]; ? |
|
m4tx |
» 2012-02-13 19:55:31 @up bardzo prosto: string podaj_marke( string mr[], int & li ) { mr[ li ]; Chociaż kompilator powinien wywalić warninga "Statement has no effect", a autor tematu nic o tym nie pisze... |
|
akwes |
» 2012-02-13 20:07:37 Bardziej mnie ciekawi to: int zak = 3; string marki[ zak ]; string model[ zak ]; float silnik[ zak ];
|
|
« 1 » 2 |