gun_man Skrivet 1 Mars 2009 Rapport Skrivet 1 Mars 2009 Hejsan, jag håller på att lära mig C++ men behöver hjälp. #include <iostream> #include <conio.h> using namespace std; int main() { int lol; char question; bool rofl; cout << "What is laughing out loud?:"; cin >> question; if (question == 'lol') rofl = true; else rofl = false; if(question == true) cout << "Correct!"; else cout << "WRONG!"; _getch(); return 0; } Hur ska jag göra för att få att när man svarar lol så kommer ett meddelande där det står Correct! och när man svarar fel så får man WRONG!. Har föröskt massa saker, fick det till Correct! en gång men då blev allt Correct! :P Citera
Banish Skrivet 1 Mars 2009 Rapport Skrivet 1 Mars 2009 (redigerat) Hejsan, jag håller på att lära mig C++ men behöver hjälp. #include <iostream> #include <conio.h> using namespace std; int main() { int lol; char question; bool rofl; cout << "What is laughing out loud?:"; cin >> question; if (question == 'lol') rofl = true; else rofl = false; if(question == true) cout << "Correct!"; else cout << "WRONG!"; _getch(); return 0; } Hur ska jag göra för att få att när man svarar lol så kommer ett meddelande där det står Correct! och när man svarar fel så får man WRONG!. Har föröskt massa saker, fick det till Correct! en gång men då blev allt Correct! :P är inte så bra, men funkar inte #include <iostream> #include <conio.h> using namespace std; int main() { char question; cout << "What is laughing out loud?:"; cin >> question; if (question == 'lol') { cout << "Correct!"; } else { cout << "Wrong!"; } cin.get(); return 0; } Redigerat 1 Mars 2009 av Planin Citera
gun_man Skrivet 1 Mars 2009 Författare Rapport Skrivet 1 Mars 2009 Rätt svar kom fortfarande ut som WRONG!. Så vi är på samma ställe. >.> Tack för hjälpen dock. Citera
Banish Skrivet 1 Mars 2009 Rapport Skrivet 1 Mars 2009 Rätt svar kom fortfarande ut som WRONG!. Så vi är på samma ställe. >.> Tack för hjälpen dock. Det här funkar mig iaf #include <iostream> #include <string> using namespace std; int main() { string question; cout << "What is laughing out loud?:"; cin >> question; if (question == "lol") { cout << "Correct!"; } else { cout << "Wrong!"; } cin.get(); cin.get(); return 0; } Citera
PunkArne Skrivet 1 Mars 2009 Rapport Skrivet 1 Mars 2009 Tack! Det funkade nu. :)Vet du varför?För att string-klassen överlagrar jämförelseoperatorn så att du slipper använda ett funktionsanrop när du jämför ett string-objekt och en vanlig c-sträng. innan hade du en char. Endast en t o m. Du skule egentligen använt char[], dvs en array (fält på svenska). När du sedan ville jämföra hade du en char i ena ledet och en konstig char i andra i o m att du använde enkelcitationstecken. Det rätta sättet att skapa en sträng är att använda vanliga (dubbla) citationstecken. När du sedan vill jämföra två strängar (c-style) så använder du strcmp(char *str1, char *str2) == 0 om du vill kontrollera att de är lika (strcmp returnerar olikheten, dvs 0 är lika). En riktig kod hade alltså sett ut såhär: #include <iostream> int main() { using namespace std; char question[32]; cout << "What is laughing out loud?:"; cin >> question; if (strcmp(question, "lol") == 0) { cout << "Correct!"; } else { cout << "Wrong!"; } cin.ignore('\n'); return 0; } Citera
Rekommendera inlägg
Gå med i konversationen
Du kan skriva nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.