Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Muuttujan erotus?

samiorko [12.03.2007 10:25:45]

#

Tämä on siis c++
Eli mulla on koodi, jonka pitäisi hakea oliosta (?) tieto.
Muuten tiedon haku onnistuu, mutta miten onnistuisin hakemaan muuttujalla.
Eli tässä on koodi jolla pyydetään käyttäjältä nimi:

std::string nimi;
std::cout << "Anna nimi: ";
std::cin >> nimi;
std::endl;

ja tässä koodin jonka pitäisi tulosta nimen tiedot:

std::cout << "Tiedot henkilöstä " << nimi << std::endl;
std::cout << "Nimi: " << nimi.nimi << std::endl;
std::cout << "Osoite: " << nimi.osoite << std::endl;
std::cout << "Kaytos: " << nimi.puhelin << std::endl;

Näin ei tunnu toimivan, koska se hakee nimi oliosta ne tiedot ja sen pitäisi hakea sen nimisestä oliosta mikä muuttujassa nimi on.
Eli onko c++:ssa jotain millä voi erottaa muuttujan nimen muusta koodista? (Kuten php:ssa {})

Ja se toimi oikein, jos laitan siihen nimen joka siellä on, esim:

std::cout << "Tiedot henkilöstä " << nimi << std::endl;
std::cout << "Nimi: " << sami.nimi << std::endl;
std::cout << "Osoite: " << sami.osoite << std::endl;
std::cout << "Kaytos: " << sami.puhelin << std::endl;

koo [12.03.2007 13:11:02]

#

Mistä nuo henkilöiden tiedot ovat alun perin tulleet? Olisiko tämä nyt alkuun lähinnä sitä mitä tässä haetaan:

void tulosta(Henkilo const &h) {
  std::cout << "Nimi: " << h.nimi << "\n";
  std::cout << "Osoite: " << h.osoite << "\n";
  std::cout << "Kaytos: " << h.puhelin << "\n";
}

Henkilo sami(/* jonkinmoinen alustus */);
Henkilo jari(/* ... */);
Henkilo kari(/* ... */);

void etsi() {
  std::cout << "Anna nimi: ";
  std::string nimi;
  std::cin >> nimi;
  std::cout << "Tiedot henkilöstä " << nimi << "\n";
  if (nimi == sami.nimi) tulosta(sami);
  else if (nimi == jari.nimi) tulosta(jari);
  else if (nimi == kari.nimi) tulosta(kari);
  else std::cout << "ei oo meikäläisiä\n";
}

C++:an perusteita voisi ehkä opiskella vähän vaikka jostakin kirjasta. Voi pitemmän päälle koitella aika lailla omia ja muidenkin hermoja, jos meinaat opetella C++:aa ihan vaan php:n pohjalta ja kyselemällä.

feenix [12.03.2007 16:02:55]

#

Tarvinnet std::mapin (jos nyt en ihan väärin muista STL:n konteinereita) johon talletat tiedot, avaimeksi nimi ja arvoksi se olio.

samiorko [13.03.2007 06:50:44]

#

koo kirjoitti:

Mistä nuo henkilöiden tiedot ovat alun perin tulleet? Olisiko tämä nyt alkuun lähinnä sitä mitä tässä haetaan:

Kyllä ne on alustettu. Näytin vaana ne koodipätkät.
Ohjelmahan toimii jos muutan muuttujan nimen valiiksi alustetuksi, esim nimi.osoite => sami.osoite. Ja php oli vian esimerkkinä, että saisin asiani paremmin ymmäretyksi.
Täytyy katsoa tuota std::mapia.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta