kuinka saisin tämän valikon toimimaan?
#include <iostream.h> int main(void) { char kirjain; cout << "P:pelit T:tarinat M:matsi L:lopeta \n"; cin >> kirjain; switch(kirjain) { case P: cout << "Menet siis pelaamaan pelejä...\n"; break; case T: cout << "Siis menet tarinoita lukemaan\n"; break; case M: cout << "Siis menet painimatsiin?\n"; break; case L: cout <<"Siis lopetat?!\n"; break; default: cout << "Ei ole valittavissa...\n"; return 0; } }
Laitoin tilapäisesti caseihin kirjaimet kun en muutakaan keksinyt :)
#include <iostream.h> int main(void) { char kirjain; cout << "P:pelit T:tarinat M:matsi L:lopeta \n"; cin >> kirjain; //Tarttee laittaa nuo kirjaimet ' ' väliin. Huom! myös isoilla ja pienillä kirjaimilla väliä joten tehdään kaikista kirjaimista ensin isoja: if('a' <= kirjain && kirjain <= 'z') { kirjain = kirjain - 'a' + 'A'; } switch(kirjain) { case 'P': cout << "Menet siis pelaamaan pelejä...\n"; break; case 'T': cout << "Siis menet tarinoita lukemaan\n"; break; case 'M': cout << "Siis menet painimatsiin?\n"; break; case 'L': cout <<"Siis lopetat?!\n"; break; default: cout << "Ei ole valittavissa...\n"; return 0; } }
Baglair: Tuollainen vertailu ei edelleenkään toimi. Ja on vielä väärin päinkin. Tämä sen sijaan toimisi:
if (kirjain <= 'z' && kirjain >= 'a')
... muutetaan kokoa.
Edit: Menit näköjään korjaamaan. Hyvä niin.
Mikäs nyt mättää? Juu tosiaan olit pari sekkaa myöhäs :)
Edit: selvä
Kiitti. Nyt pelittää :D
Minäpä kysyn myös, miksei tämä pelitä?
#include <iostream> using namespace std; int main(void) { char merkki[22]; cout << "TESTER" << endl; cout << "Valitse A,B,C tai D ja paina enter" << endl; { cin >> merkki; switch(merkki) { case 'A': cout << "Se on A kirjain"; break; case 'B': cout << "Se on B kirjain"; break; case 'C': cout << "Se on C kirjain"; break; case 'D': cout << "Se on D kirjain"; break; default: cout << "Jahas ajattelit alkaa kapinoimaan"; break; } } }
Ensinnäkin se return 0; on suotava, vaikkei C++-standardi sitä vaadikaan. Mutta sitähän et tosiaan kysynyt.
Toiseksi niitä virheilmoituksia kannattaa lukea. Siellä lukee hyvin selvästi, että char-taulukko ei ole sama asia kuin char. Itse saat kyllä sen korjata. Vertaa aiempaan koodiin tässä aiheessa ja mieti, mikä on suurin ero.
Kirjaimia testattaessa kannattaa (siis vain jos haluaa tsekata sekä isot että pienet syötteet) tehdä caset näin:
case 'A': case 'a': // toiminta tänne break;
Aihe on jo aika vanha, joten et voi enää vastata siihen.