Hoppa till innehåll

If Else C++


gun_man
 Dela

Rekommendera inlägg

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

Länk till kommentar
Dela på andra sajter

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 av Planin
Länk till kommentar
Dela på andra sajter

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

Länk till kommentar
Dela på andra sajter

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

Länk till kommentar
Dela på andra sajter

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.

Gäst
Svara på det här ämnet...

×   Klistrade in som rich text.   Klistra in som vanlig text istället

  Endast 75 emojis är tillåtet.

×   Din länk har automatiskt inbäddats.   Visa som en länk istället

×   Ditt tidigare innehåll har återställts.   Rensa redigeraren

×   Du kan inte klistra in bilder direkt. Ladda upp eller infoga bilder från URL.

 Dela

×
  • Skapa ny...