8296425 Temat założony przez niniejszego użytkownika |
[VII. Ciągi znaków – łańcuchy] Problem z zadaniem 4 » 2010-07-07 09:47:24 http://kursy.ddt.pl/?LessonId=14Napisalem oto taki kod do zadania: #include <iostream> #include <conio.h> int main() { using namespace std; char marka1, model1, pojemnosc_silnika1, predkosc_max1, marka2, model2, pojemnosc_silnika2, predkosc_max2, marka3, model3, pojemnosc_silnika3, predkosc_max3; char tab[ 3 ][ 10 ] = { { marka1, model1, pojemnosc_silnika1, predkosc_max1 }, { marka2, model2, pojemnosc_silnika2, predkosc_max2 }, { marka3, model3, pojemnosc_silnika3, predkosc_max3 } }; cout << "Podaj marke 1 samochodu: "; cin.getline( tab[ 0 ], marka1 ).get(); cout << "Podaj model 1 samochodu: "; cin.getline( tab[ 0 ], model1 ).get(); cout << endl << "Podaj pojemnosc silnika 1 samochodu: "; cin.getline( tab[ 0 ], pojemnosc_silnika1 ).get(); cout << endl << "Podaj predkosc maksymalna 1 samochodu: "; cin.getline( tab[ 0 ], predkosc_max1 ).get(); cout << endl << endl; cout << "Podaj marke 2 samochodu: "; cin.getline( tab[ 1 ], marka2 ).get(); cout << endl << "Podaj model 2 samochodu: "; cin.getline( tab[ 1 ], model2 ).get(); cout << endl << "Podaj pojemnosc silnika 2 samochodu: "; cin.getline( tab[ 1 ], pojemnosc_silnika2 ).get(); cout << endl << "Podaj predkosc maksymalna 2 samochodu: "; cin.getline( tab[ 1 ], predkosc_max2 ).get(); cout << endl << endl; cout << "Podaj marke 3 samochodu: "; cin.getline( tab[ 2 ], marka3 ).get(); cout << endl << "Podaj model 3 samochodu: "; cin.getline( tab[ 2 ], model3 ).get(); cout << endl << "Podaj pojemnosc silnika 3 samochodu: "; cin.getline( tab[ 2 ], pojemnosc_silnika3 ).get(); cout << endl << "Podaj predkosc maksymalna 3 samochodu: "; cin.getline( tab[ 2 ], predkosc_max3 ).get(); cout << endl << endl << endl; cout << "Marka |" << "model |" << "poj. silnika |" << "max. predkosc |" << endl << tab[ 0 ][ 0 ] << " |" << tab[ 0 ][ 1 ] << " |" << tab[ 0 ][ 2 ] << " |" << tab[ 0 ][ 3 ] << " |"; getch(); return( 0 ); }
Problem polega na tym ze po wypelnieniu pierwszego pola kursor odrazu przeskakuje na koniec programu pomimo tego ze wstawilem wszedzie get(). Bylbym ogromnie wdzieczny za pomoc ^^ |
|
ison |
» 2010-07-07 11:23:44 tak trochę sam się zamieszałeś, nie wiem po co ta linijka? char tab[ 3 ][ 10 ] = { { marka1, model1, pojemnosc_silnika1, predkosc_max1 }, { marka2, model2, pojemnosc_silnika2, predkosc_max2 }, { marka3, model3, pojemnosc_silnika3, predkosc_max3 } };
co ona ma symbolizować jak wszystkie te zmienne są równe 0? :p (ba, nawet nie 0 bo deklarujesz je w funkcji więc mają pewnie jakieś losowe znaki) w cin.getline jako drugi argument podaje się wielkość a ty przekazujesz mu wartość początkową 0 więc się nie dziw że ci nic nie wczytuje ;) poza tym to żeby wczytać całe słowo musisz użyć tablicy char'ów a nie jednego char'a. te wszystkie zmienne: char marka1, model1, pojemnosc_silnika1, predkosc_max1, marka2, model2, pojemnosc_silnika2, predkosc_max2, marka3, model3, pojemnosc_silnika3, predkosc_max3;
powinny być tablicami bo przecież będą miały więcej niż 1 znak tak powinno wyglądać wczytywanie: cout << "Podaj marke 1 samochodu: "; cin.getline( marka1, 200 );
|
|
8296425 Temat założony przez niniejszego użytkownika |
» 2010-07-07 11:58:49 Tak, miałeś rację, wielkie dzięki za pomoc ^^, nie moge sie przyzwyczaic do tych typow zmiennych :p. Już dziala poprawnie ale sa jeszcze pewne niedogodnosci :P. Gdy wstawie odpowiedz na pytanie i wcisne enter to zamiast pojawienia sie nastepnego pytania, pojawia sie pusta linijka i musze jeszcze raz wcisnac enter zeby kolejne pytanie sie zaladowalo... |
|
ison |
» 2010-07-07 12:08:47 a wywaliłeś wszędzie .get(); tak jak ci mówiłem? u mnie działa dobrze :p |
|
8296425 Temat założony przez niniejszego użytkownika |
» 2010-07-07 12:17:48 dobra, zapomnialem -.-, juz dziala, dzieki za pomoc :d |
|
« 1 » |