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

[C++, konsola] Problem z wczytywaniem kilku słów naraz

Ostatnio zmodyfikowano 2013-04-03 11:57
Autor Wiadomość
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

C/C++
#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;
}
P-79818
pekfos
» 2013-04-02 21:38:49
P-79824
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 ;)
P-79825
pekfos
» 2013-04-02 21:42:09
wczytuje aż do wczytania spacji,
Białego znaku. Spacja, tabulacja, itp.
P-79826
Stork
Temat założony przez niniejszego użytkownika
» 2013-04-02 22:03:47
dobrze zamieniam więc
C/C++
cin >> samochody[ j ].marka;
na
C/C++
cin.getline( samochody[ j ].marka, 50 );
i problem pozostaje. Nie wiem co robię źle :|
P-79834
anonim
» 2013-04-03 11:57:49
std::getline( std::cin, nazwa_samochodu );
P-79845
« 1 »
  Strona 1 z 1