Permalänk
Medlem

c++ problem.

Tjena, Jag håller på lär mig c++ och håller på att göra ett enkelt sant eller falskt spel och jag har stött på ett problem. när man ska svara sant eller falskt vill jag att man ska trycka på t eller f och man ska inte behöva trycka på space utan att programmet går vidare driekt när man trycker på t eller f.

Här är koderna för en fråga och jag hoppas ni förstår vad jag menar, jag vill alltså inte behöva skriva true eller false.

cout << "true or false?" << endl;
cout << " " << endl;
cout << " " << endl;
cout << "1. " "Super Mario is a japanese game." << endl << "answer: ";
cin >> answer;

if(answer == "true"){
cout << " " << endl;
cout << "Right answer!";
a=a+1;
}
else{
cout << " " << endl;
cout << "wrong answer!";

}

jag har en string som heter answer och en int som heter a och räknar antal rätt.

Permalänk
Medlem

Varför skriver du if(answer == "true") om du inte vill behöva skriva in hela ordet?
Fattar inte varför det är massa citattecken överallt heller. btw kan du pasta hela koden så att man kan provköra och få en bättre förståelse för exakt vad det är du menar. När behöver du trycka på space?

Visa signatur

| Fractal Design XL R2| 2x Gigabyte 680 Gtx@1254/7300mhz | Asrock Z77 OC Formula | 3570k@4.5ghz(1.36v) & Phanteks PH-TC14PE | 16gig hyperx beast series@2133mhz | Fractal Design Newton R2, 1000W 80+ | Samsung SSD Basic 840-Series 512GB | 2TB Toshiba 7200rpm SATA6 | 9x Scythe Glide Stream 2000rpm | 2x Bitfenix Recon Fan Controller | BenQ 27'' XL2720T 120Hz + Dell UltraSharp 27" U2713HM IPS 2560x1440 | Sennheiser HD595

Permalänk
Medlem
Skrivet av TappyOne:

Tjena, Jag håller på lär mig c++

Funktionen du är ute efter finns inte naturligt i c++-terminalläge, men det finns funktioner som getch i icke-portabla libraries som conio.h.
Tycker ändå att det blir bättre om man ska trycka på t/f och sedan Enter. Det blir som:
"Jag väljer A [t/f]",
"Är det ditt slutgiltiga svar?",
"Ja [Enter]".

Visa signatur

SLI Titan X - i7 5960x 8-kärnig - Asus Rampage V - 32 GB Corsair Dominator - Intel 750 2200 MB/s Pcie-disk.

Permalänk
Skrivet av TappyOne:

Tjena, Jag håller på lär mig c++ och håller på att göra ett enkelt sant eller falskt spel och jag har stött på ett problem. när man ska svara sant eller falskt vill jag att man ska trycka på t eller f och man ska inte behöva trycka på space utan att programmet går vidare driekt när man trycker på t eller f.

Här är koderna för en fråga och jag hoppas ni förstår vad jag menar, jag vill alltså inte behöva skriva true eller false.

cout << "true or false?" << endl; cout << " " << endl; cout << " " << endl; cout << "1. " "Super Mario is a japanese game." << endl << "answer: "; cin >> answer; if(answer == "true"){ cout << " " << endl; cout << "Right answer!"; a++ //Identiskt med a=a+1; } else{ cout << " " << endl; cout << "wrong answer!"; }

jag har en string som heter answer och en int som heter a och räknar antal rätt.

Så här skulle jag ha gjort. Jag har baserat mitt svar på din kod, men jag har ordnat till den för att vara lättare att läsa.

char answer; //Bättre, mindre att skriva för användaren och mycket marginellt snabbare. cout << "true or false?\n\n"; // \n ger ASCII tecekn för nyrad, jag tycker att det blir bättre. :) cout << "1. Super Mario is a japanese game.\n" << "answer: "; cin >> answer; cout << "\n"; //Nyrad oavsett vilket alternativ som valt if (answer == 't') { //"string" 'char', skillnad på tecken beroende på typ. cout << "Right answer!"; a=a+1; } else if (answer == 'f') { //Du kan inte lite på användaren. Folk är dumma! cout << "wrong answer!"; } else { cout << "answer not true or false!"; } }

Visa signatur

6600K@4,5GHz 1,25V | EVGA 980Ti | Samsung 950 Pro m.2

Permalänk
Medlem

man kan skriva a+=; istället för a=a+1;

och precis som tomten har gjort så ska man alltid göra alternativ för om användaren skriver in något annat. Fast det brukar jag göra sist.

Visa signatur

| Fractal Design XL R2| 2x Gigabyte 680 Gtx@1254/7300mhz | Asrock Z77 OC Formula | 3570k@4.5ghz(1.36v) & Phanteks PH-TC14PE | 16gig hyperx beast series@2133mhz | Fractal Design Newton R2, 1000W 80+ | Samsung SSD Basic 840-Series 512GB | 2TB Toshiba 7200rpm SATA6 | 9x Scythe Glide Stream 2000rpm | 2x Bitfenix Recon Fan Controller | BenQ 27'' XL2720T 120Hz + Dell UltraSharp 27" U2713HM IPS 2560x1440 | Sennheiser HD595

Permalänk
Medlem
Skrivet av deadich:

Varför skriver du if(answer == "true") om du inte vill behöva skriva in hela ordet?
Fattar inte varför det är massa citattecken överallt heller. btw kan du pasta hela koden så att man kan provköra och få en bättre förståelse för exakt vad det är du menar. När behöver du trycka på space?

Det kan jag fixa:p jag har hållt på med programering och c++ i bara 3 dagar så jag har inte riktigt koll på allt

här är hela koden.

#include <iostream>

using namespace std;

int main(){

cout << "================================================" << endl;
cout << "==#########==########===####===#####===########=" << endl;
cout << "=#==========#========#=#====#=#=====#=#=========" << endl;
cout << "=#==========#========#=#=====#======#=#=========" << endl;
cout << "=#====####==##########=#============#=#######===" << endl;
cout << "=#========#=#========#=#============#=#=========" << endl;
cout << "==########==#========#=#============#==########=" << endl;
cout << "================================================" << endl;
cout << "===########==#=======#=###=###====###########===" << endl;
cout << "=#========#==#=======#====#==================#==" << endl;
cout << "=#========#==#=======#====#================##===" << endl;
cout << "=#========#==#=======#====#========########=====" << endl;
cout << "=#========#==#=======#====#======##=============" << endl;
cout << "=#======#=#==#=======#====#=====#===============" << endl;
cout << "==########====#######==###=###====############==" << endl;
cout << "===========#====================================" << endl;

cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;

cout << "OBS!""You have to spell true and false right and only use lowercase." << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;

string answer;
int rightanswers;
int a;

a=0;

cout << "true or false?" << endl;
cout << " " << endl;
cout << " " << endl;
cout << "1. " "Super Mario is a japanese game." << endl << "answer: ";
cin >> answer;

if(answer == "true"){
cout << " " << endl;
cout << "Right answer!";
a=a+1;
}
else{
cout << " " << endl;
cout << "wrong answer!";

}

cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "2. " "The creator off minecraft is Markus Persson." << endl << "answer: ";
cin >> answer;

if(answer == "true"){
cout << " " << endl;
cout << "Right answer!";
a=a+1;
}
else{
cout << " " << endl;
cout << "wrong answer!";

}

cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "3. " "The Main person in Call Of Duty Black ops 2 campain is whoods." << endl << "answer: ";
cin >> answer;

if(answer == "false"){
cout << " " << endl;
cout << "Right answer!";
a=a+1;
}
else{
cout << " " << endl;
cout << "wrong answer!";

}

cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "4. " "World Of Warcraft was founded by Blizzard 2005." << endl << "answer: ";
cin >> answer;

if(answer == "false"){
cout << " " << endl;
cout << "Right answer!";
a=a+1;
}
else{
cout << " " << endl;
cout << "wrong answer!";

}

cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "5. " "League Of Legends is a MMORPG." << endl << "answer: ";
cin >> answer;

if(answer == "false"){
cout << " " << endl;
cout << "Right answer!";
a=a+1;
}
else{
cout << " " << endl;
cout << "wrong answer!";

}

cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "6. " "AWP its a sniper rifle in Battlefield 3." << endl << "answer: ";
cin >> answer;

if(answer == "false"){
cout << " " << endl;
cout << "Right answer!";
a=a+1;
}
else{
cout << " " << endl;
cout << "wrong answer!";

}

cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "7. " "CounterStrike source is the 3th game in the CounterStrike serie." << endl << "answer: ";
cin >> answer;

if(answer == "true"){
cout << " " << endl;
cout << "Right answer!";
a=a+1;
}
else{
cout << " " << endl;
cout << "wrong answer!";

}

cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "8. " "Halo is a racing game." << endl << "answer: ";
cin >> answer;

if(answer == "false"){
cout << " " << endl;
cout << "Right answer!";
a=a+1;
}
else{
cout << " " << endl;
cout << "wrong answer!";

}

cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "9. " "Its 5 players in a starcraft team." << endl << "answer: ";
cin >> answer;

if(answer == "false"){
cout << " " << endl;
cout << "Right answer!";
a=a+1;
}
else{
cout << " " << endl;
cout << "wrong answer!";

}

cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "10. " "There are 2 lego batman game for xbox 360." << endl << "answer: ";
cin >> answer;

if(answer == "true"){
cout << " " << endl;
cout << "Right answer!";
a=a+1;
}
else{
cout << " " << endl;
cout << "wrong answer!";

}
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;

cout << " " << endl;

cout << " " << endl;
cout << " " << endl;
cout << "Your Score: "<< a << "/10";
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "Thanks fot playing the game :)" << endl;
cout << " "" "" "" "" "" "" "" "" "" " " "" "" "" "" "" "" "" "" "" " " "" "" "" "" "" "" "" "" "" " "" "" "" "" "" "" "" "" "" " " "" "" "" "" "" "" "" "" "" " " "" "" "" "" "" "" "" "" "" " Made by Simon Franden.";

cin.get();
cin.get();
return 0;

}

Permalänk
Medlem

Du ska göra en slutuppgift i programmering b och har programmerat i 3 dagar?

Du kan se till att dom kan skriva in uppercase osv med en manuell kod men även men en färdig string-skit om jag inte missminnerr mig.

Visa signatur

| Fractal Design XL R2| 2x Gigabyte 680 Gtx@1254/7300mhz | Asrock Z77 OC Formula | 3570k@4.5ghz(1.36v) & Phanteks PH-TC14PE | 16gig hyperx beast series@2133mhz | Fractal Design Newton R2, 1000W 80+ | Samsung SSD Basic 840-Series 512GB | 2TB Toshiba 7200rpm SATA6 | 9x Scythe Glide Stream 2000rpm | 2x Bitfenix Recon Fan Controller | BenQ 27'' XL2720T 120Hz + Dell UltraSharp 27" U2713HM IPS 2560x1440 | Sennheiser HD595

Permalänk
Medlem
Skrivet av deadich:

Du ska göra en slutuppgift i programmering b och har programmerat i 3 dagar?

Du kan se till att dom kan skriva in uppercase osv med en manuell kod men även men en färdig string-skit om jag inte missminnerr mig.

jag håller på kolla på en serie på youtube och är på avsnitt 16 av 86 och jag ville testa göra någonting med det jag har lärt mig hittils och resultatet ser du ovan

Permalänk
Inaktiv
Skrivet av TappyOne:

jag håller på kolla på en serie på youtube och är på avsnitt 16 av 86 och jag ville testa göra någonting med det jag har lärt mig hittils och resultatet ser du ovan

Har inte kollat på den där serien och vet inte om den har gått in på funktioner, men så här skulle det kunna se ut.

#include <iostream> using namespace std; void Question(string text, string correctAnswer) { for(int i=0; i<4; i++) { cout << " " << endl; } cout << text; string userInput; cin >> userInput; if(userInput == correctAnswer) { cout << "True answer"; } else{ cout << "Wrong answer"; } } int main(){ Question("Super Mario is a japanese game", "T"); Question("The creator off minecraft is Markus Persson", "T"); cin.get(); cin.get(); }

Jag eller någon annan kan kommentera raderna om det var något du inte förstog

Permalänk
Medlem
Skrivet av TappyOne:

jag håller på kolla på en serie på youtube och är på avsnitt 16 av 86 och jag ville testa göra någonting med det jag har lärt mig hittils och resultatet ser du ovan

Trodde att detta var en annan tråd. sry.

Visa signatur

| Fractal Design XL R2| 2x Gigabyte 680 Gtx@1254/7300mhz | Asrock Z77 OC Formula | 3570k@4.5ghz(1.36v) & Phanteks PH-TC14PE | 16gig hyperx beast series@2133mhz | Fractal Design Newton R2, 1000W 80+ | Samsung SSD Basic 840-Series 512GB | 2TB Toshiba 7200rpm SATA6 | 9x Scythe Glide Stream 2000rpm | 2x Bitfenix Recon Fan Controller | BenQ 27'' XL2720T 120Hz + Dell UltraSharp 27" U2713HM IPS 2560x1440 | Sennheiser HD595

Permalänk
Medlem

cout << "true or false?" << endl;
cout << " " << endl;
cout << " " << endl;
cout << "Is Super Mario a japanese game?" << endl
<<"For yes push [1]" << endl
<<"For no push [2]" << endl;
cin >> answer;

if(answer == "1"){
cout << " " << endl;
cout << "Right answer!";
a=a+1;
}
else if(answer == "1"){
cout << " " << endl;
cout << "wrong answer!";
}
else{
cout <<"error, no allterntive called " << answer << endl;
}

men för att göra det mer effectivt hade jag valt en swich case sat, men det funkar inte med string dock...

Visa signatur

Смерть -это решение всех проблем. Нет человека - нет проблемы
Comp1: Ubuntu 16.04 Comp2: Arch Linux
Comp3: Ubuntu Server 16.04 Comp4: Centos 6.5
Comp5: Linux mint 16 Comp6: Raspberry pi (olika OS hela tiden)
Phone: Motorola Google Nexus 6

Permalänk
Medlem
Skrivet av TappyOne:

Det kan jag fixa:p jag har hållt på med programering och c++ i bara 3 dagar så jag har inte riktigt koll på allt

här är hela koden.

Kod

Sätt din kod i CODE taggar här på forumet!

Varför skriver du:

cout << " " << endl;

Detta kommer ge exakt samma resultat på skärmen:

cout << endl;

Vill du ha ytterligare kompaktare kod kan du skriva:

cout << endl << endl << endl << endl << endl;

istället för

cout << " " << endl; cout << " " << endl; cout << " " << endl; cout << " " << endl; cout << " " << endl;

Permalänk
Medlem
Skrivet av kobb3:

Sätt din kod i CODE taggar här på forumet!

Varför skriver du:

cout << " " << endl;

Detta kommer ge exakt samma resultat på skärmen:

cout << endl;

Vill du ha ytterligare kompaktare kod kan du skriva:

cout << endl << endl << endl << endl << endl;

istället för

cout << " " << endl; cout << " " << endl; cout << " " << endl; cout << " " << endl; cout << " " << endl;

tack för tippset