Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[VII. Ciągi znaków – łańcuchy] Problem z zadaniem 4

Ostatnio zmodyfikowano 2010-07-07 12:17
Autor Wiadomość
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=14
Napisalem oto taki kod do zadania:
C/C++
#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 ^^
P-19630
ison
» 2010-07-07 11:23:44
tak trochę sam się zamieszałeś, nie wiem po co ta linijka?
C/C++
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:
C/C++
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:
C/C++
char marka1[ 201 ];
C/C++
cout << "Podaj marke 1 samochodu: ";
cin.getline( marka1, 200 );
P-19633
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...
P-19634
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
P-19636
8296425
Temat założony przez niniejszego użytkownika
» 2010-07-07 12:17:48
dobra, zapomnialem -.-, juz dziala, dzieki za pomoc :d
P-19637
« 1 »
  Strona 1 z 1