char koodi[10000]; cin >> koodi; if(koodi=="word") cout <<"Kirjoitappa printattava teksti\n"; cin >> koodi; cout << koodi<<".\n";
probleema on siinä kun mä oon tekemässä Laseria niin kun kirjoittaa word niin tulis teksti Kirjoitappa printattava teksti ja sit kun kirjoittais tätä en osaa ja kirjoittais sen jälkeen run niin kaikki häviäisi ja tulis kirjoitettu printtaus tämän osaan. C++ kielenä
Olis ihan kiva jos olis pisteitä ja pilkkuja. Enkä tajunnut muutenkaan: "kirjottas tätä en osaa" "tulis kirjoitettu printtaus tämän osaan".
Tajusinko oikein, että tuo koodi=="word" ei toimi?
Merkkijonoja ei voi verrata noin. Pitää käyttää strcmp-funktiota.
// #include <stdio.h> // strcmp löytyy tuolta if(strcmp(koodi,"word")==0) // palauttaa nollan jos on samat { // tähän omaa soodia }
kannattaa mielummin laittaa se:
do // Kysytään niin kauan kun käyttäjä antaa jotain muuta kuin 'word' cout << "Anna tekstiä"; cin >> koodi; while (strcmp(koodi, "word") == 0); cout << koodi << endl;
Kun nyt C++:sta oli kyse niin voit toki käyttää std::string-luokkaa, silloin vertaaminen operaattoreiden ylikuormituksen ansiosta onnistuu suoraan:
#include <iostream> #include <string> int main() { std::string foo; std::cout << "hei! kirjo jotain:" << std::endl; std::cin >> foo; if(foo == "bar") std::cout << "foo oli 'bar'" << std::endl; else std::cout << "foo ei ollut 'bar' :(" << std::endl; return 0; }
Aihe on jo aika vanha, joten et voi enää vastata siihen.