[ cherokee_ns @ 02.05.2011. 15:28 ] @
Pozdrav svima!

Pretrazio sam forum, i nisam nasao nigde neki slican problem.

Imam kao zadatak da napisem program koji racuna skalarni proizvod 2 vektora, pri cemu vektor ima 3 dimenzije...
Program kao program nije tesko uraditi, ali muci me jedna specijalna stvar koju je covek zadao:

Naime, treba sva 3 elementa vektora uneti u jednoj liniji :/

Npr. ispise na ekranu Unesite elemente 1. vektora: i vi unesete npr. 1 1.0 1, nakon cega pritisnete enter.

Ucitani elementi trebaju da se smeste u jedan niz.

Najveci problem mi je to ucitavanje, posto to nije ono klasicno sa f-jom cin... Pretpostavljam da verovatno ga treba uneti kao char (niz karaktera), pa onda tu izvrsiti neku obradu, separaciju ili vec.

Da li mozda ima neko ideju, smernicu ili vec kako bih to ucitavanje mogao da resim?

Hvala unapred. :)
[ Mihajlo Cvetanović @ 02.05.2011. 19:05 ] @
Pričam napamet (i uz pomoc Gugla), ali trebalo bi da ide ovako:

Code:
#include <iostream>
#include <sstream>
#include <string>

using namespace std;

...
string s;

for (;/* dokle god je potrebno */;)
{
  getline(cin, s);
  stringstream ss(s);
  double d1, d2, d3;

  ss >> d1 >> d2 >> d3;
  if (ss.fail())
  {
    // handluj gresku
  else
  {
    // iskoristi brojeve
  }
}
[ cherokee_ns @ 02.05.2011. 20:32 ] @
Mnogo hvala, to je to! Probano i radi.

Nasao sam na google ranije o stringstream, samo sto mi nije bilo jasno kako funkcionise.

Hvala jos jednom.
[ pgavrilo @ 04.05.2011. 19:55 ] @
Pa zar nije mnogo lakse i brze ovako:
Code:
#include <iostream>

using namespace std;

...

for (;/* dokle god je potrebno */;)
{
  double d1, d2, d3;
  cin >> d1 >> d2 >> d3;
}
[ Mihajlo Cvetanović @ 05.05.2011. 09:24 ] @
Može i tako, ali ja se nešto sećam da tu sad ima neki problem u vezi sa hendlovanjem pogrešnog inputa, i kroz maglu mi provejava da se taj problem rešava sa getline. Seća li se neko problema?