💬
Logga in
Fuska.se

If Else C++

6 svar · startad

Nivå 1 · Novis
Trådstartare #1

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

Nivå 7 · Fuskare
#2
↗ till inlägget

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

Senast ändrad:

Nivå 1 · Novis
Trådstartare #3

Rätt svar kom fortfarande ut som WRONG!.

Så vi är på samma ställe. >.> Tack för hjälpen dock.

Nivå 7 · Fuskare
#4
↗ till inlägget

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

Nivå 1 · Novis
Trådstartare #5

Tack! Det funkade nu. :)

Nivå 2 · Novis
#6
↗ till inlägget

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

2 Mar 2009
Nivå 1 · Novis
Trådstartare #7

@ PunkArne, tackar!:)

Vill du vara med i diskussionen?

Bli medlem Logga in