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.