Tässä kokeillessani C++:aa heräsi kysymys: miten muuttujien tyypiksi saa vaihdettua merkkijonon? Vai onko tämä edes mahdollista? Kyseessä on tällainen
#include <iostream> int main() { muutujatyyppi_merkkijono teksti; bool oikea; while (oikea != true) std::cout << "Syötä teksti." << std::endl; std::cin >> teksti; if (teksti == C++) { std::cout << "Oikea vastaus!" << std::endl; oikea = true; } else { std::cout << "Yritä uudelleen!" << std::endl; oikea = false; } } }
Nyt hei, yrittäisit edes. C++:n merkkijono on string-otsikossa määritelty std::string.
Koodissasi siis pitää lisätä yksi include-rivi, laittaa teksti-muuttujalle tyypiksi std::string ja laittaa "C++" lainausmerkkeihin sekä lisätä while-riville avaava aaltosulku. Lisäksi oikea-muuttuja pitäisi alustaa, nyt sen alkuarvo on määrittelemätön ja se voi joskus olla sattumalta valmiiksi true.
Muistutan, että main funktiosta myös puuttuu palautus arvo.
yawnbits kirjoitti:
Muistutan, että main funktiosta myös puuttuu palautus arvo.
Muistutan, että main-funktiossa ei tarvitse olla return-riviä. Jos et usko, lue C++-standardista.
Metabolix kirjoitti:
yawnbits kirjoitti:
Muistutan, että main funktiosta myös puuttuu palautus arvo.
Muistutan, että main-funktiossa ei tarvitse olla return-riviä. Jos et usko, lue C++-standardista.
Anteeksi. Ohjelmoinu liikaa C:tä että olen unohtanut että C++ ei vaadi main funktiolle palautus arvoa. :D
yawnbits kirjoitti:
Ohjelmoinu liikaa C:tä että olen unohtanut että C++ ei vaadi main funktiolle palautus arvoa. :D
Aika heikko selitys sikäli, että myöskään C:ssä sitä ei ole tarvittu enää tällä vuosituhannella eli C99-standardin. "Reaching the } that terminates the main function returns a value of 0."
Metabolix, kuinka niin heikko selitys? En sanonut, että mitä C versiota olen käyttänyt. Taitaapi olla gnu89 koska se on edelleen oletus standardi GCC:ssä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.