[C++, konsola] Problem z wczytywaniem kilku słów naraz
Ostatnio zmodyfikowano 2013-04-03 11:57
Stork Temat założony przez niniejszego użytkownika |
[C++, konsola] Problem z wczytywaniem kilku słów naraz » 2013-04-02 21:01:49 Witam, to mój pierwszy post i nie wiem dokładnie jak stworzyć takie 'pudelko' zeby wpisac kod. Zadanie jakie mam do zrobienia jest nastepujące. Mam strukture car i program ma pobierac liczbe samochodow jakie chce wpisać (a na końcu wypisać). Problem na który się tu natykam jest taki, że program się wykrzacza gdy marka samochodu ma jedno słowo. Jak mam zmienić kod aby bez problemu wczytywało mi dwa słowa, np 'alfa romeo'.
A tu kod
#include <iostream> #include <string>
struct car { char marka[ 50 ]; int rok; };
int main() { using namespace std; int i; cout << "Ile samochodow chcesz wpisac?" << endl; cin >> i; car * samochody = new car[ i ]; for( int j = 0; j < i; j++ ) { cin >> samochody[ j ].marka; cin >> samochody[ j ].rok; } for( int j = 0; j < i; j++ ) { cout << samochody[ j ].marka << endl; cout << samochody[ j ].rok << endl; } delete[] samochody; char c; cin >> c; } |
|
pekfos |
» 2013-04-02 21:38:49 |
|
anonim |
» 2013-04-02 21:39:25 Poczytaj o tej funkcji std::getline std::cin >> wczytuje aż do wczytania spacji, a getline czyta, dopóki nie znajdzie znaku nowej lini http://cpp0x.pl/kursy/Kurs-C++/Poziom-3/Wczytywanie-tekstu-standardowy-strumien-wejscia/351 //Pekfos, wiem o tym, ale nie chciałem zbytnio komplikować sprawy ;) |
|
pekfos |
» 2013-04-02 21:42:09 wczytuje aż do wczytania spacji, |
Białego znaku. Spacja, tabulacja, itp. |
|
Stork Temat założony przez niniejszego użytkownika |
» 2013-04-02 22:03:47 dobrze zamieniam więc cin >> samochody[ j ].marka;
na cin.getline( samochody[ j ].marka, 50 );
i problem pozostaje. Nie wiem co robię źle :| |
|
anonim |
» 2013-04-03 11:57:49 std::getline( std::cin, nazwa_samochodu ); |
|
« 1 » |