Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Auttakaa aloittelijaa

Sivun loppuun

ItEliasPro [01.02.2011 14:32:09]

#

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;}
}

Chiman [01.02.2011 14:33:52]

#

Aina on helpompi auttaa, kun kerrot mitä kääntäjä valittaa. Eli liitä virheilmoitus mukaan.

petrinm [01.02.2011 14:46:31]

#

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;

Grez [01.02.2011 14:48:02]

#

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.

Metabolix [01.02.2011 14:48:18]

#

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.

ItEliasPro [01.02.2011 15:36:51]

#

Näköjään se oli just siin et vahingos laitoin " vaikka ois pitäny laittaa '.
Kiitos kaikille!
Muuten oon vasta 10v xD

-tossu- [01.02.2011 15:43:02]

#

ItEliasPro kirjoitti:

Mutta vertailin niitä rivejä joista se valittaa enkä löytänyt.

Vertaile tarkemmin ja katso etenkin lainausmerkkejä.

ItEliasPro [01.02.2011 15:44:17]

#

joo siit se johtu en huomannu niin pientä juttuu


Sivun alkuun

Vastaus

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

Tietoa sivustosta