eli yritin tehdä harjoitusta koodata itse samaa mitä oli C++ oppaassa mutta kääntäjä
valittaa osaisiko joku auttaa
#include <iostream> int main () { double a, b; char lasku; std::cout << "Kirjoita lasku toimitus esim 1-1"; std::cin >> a >> lasku >> b; if (!std::cin.good()) {std::cout << "Error";return 1;} if (lasku == "+") { std::cout << "Tulos on" << (a + b); } else if (lasku == "-") { std::cout << "Tulos on" << (a - b); } else if (lasku == "*") { std::cout << "Tulos on" << (a * b); } else if (lasku == "/") { std::cout << "Tulos on" << (a / b); } else {std::cout << "ERROR";return 2;} }
Aina on helpompi auttaa, kun kerrot mitä kääntäjä valittaa. Eli liitä virheilmoitus mukaan.
Pari yksityiskohtaa, jotka huomasin tosta:
Vertailet char tyyppiä merkkijonoon. Oikea ratkaisua olisi if (lasku == '+')
, jossa '+' tarkoittaa yksittäistä merkkiä; ei merkkijonoa jonka ainoa merkki on "+".
Toinen pieni virhe on se että kaikissa tapauksissa main funktio ei palauta mitään arvoa eli koodin loppuun pitäisi lisätä return 0;
Mulle sanoo tälleen kun yrittää kääntää
ItElias.cc: In function `int main()':
ItElias.cc:10: error: ISO C++ forbids comparison between pointer and integer
ItElias.cc:14: error: ISO C++ forbids comparison between pointer and integer
ItElias.cc:18: error: ISO C++ forbids comparison between pointer and integer
ItElias.cc:22: error: ISO C++ forbids comparison between pointer and integer
Eli tosiaan nimenomaan tuosta merkkijonosta (joka on pointteri) ja lasku-muuttujasta joka on char eli sinänsä kielen kannalta luku.
Nyt on oiva aika opetella ratkaisemaan ongelmia itse: Kääntäjä kertoo, millä riveillä virheitä on. Vertaa niitä rivejä oppaan koodiin, niin löydät vian.
petrinm, kannattaa tutustua C++:n standardiin tuon main-funktion paluuarvon osalta, nimittäin se on poikkeustapaus.
Näköjään se oli just siin et vahingos laitoin " vaikka ois pitäny laittaa '.
Kiitos kaikille!
Muuten oon vasta 10v xD
ItEliasPro kirjoitti:
Mutta vertailin niitä rivejä joista se valittaa enkä löytänyt.
Vertaile tarkemmin ja katso etenkin lainausmerkkejä.
joo siit se johtu en huomannu niin pientä juttuu
Aihe on jo aika vanha, joten et voi enää vastata siihen.