Permalänk
Medlem

C++ tangent tryckning.

Jag håller på att göra en kalkylator, och när man har gjort klart sin uträkning så kommer den fråga en ifall man vill avsluta eller göra ännu en uträkning. Detta görs i kommandofönstret. Så då tänkte jag ha en Y/N och om man trycker Y så får man göra en uträckning till och N såklart så avslutar den programmet. Men vad ska jag då använda för att den ska känna igen om en tangent blir nertryckt? Jag vill inte att användaren ska behöva trycka Y sedan enter osv. Utan bara trycka ner tangenten så gör den vad den skall.

Permalänk

Jag gjorde en snabb sökning på nätet och det verkar inte vara det lättaste i c++, det finns ett antal metoder med för och nackdelar.

http://stackoverflow.com/questions/421860/c-c-capture-charact...

Permalänk
Medlem

cin >> input;

if (input = 'y' || input = 'Y')
{
//insert code
}

Permalänk

Jag tror det du letar efter är funktionen getch(). var ett tag sen jag kollade på nån kod men om du googlar lite så tror jag att det är vad du vill använda. getch() tar emot knapptryck och skickar dem vidare direkt utan att du behöver trycka ner ENTER

Permalänk
Medlem

Du kan testa detta.

//Edit: Kortade ner en rad.

#include <iostream> #include <conio.h> using namespace std; int main() { char userAnswer; while (true) { userAnswer = toupper(_getch()); if(userAnswer == 'Y') cout << "Calculate again" << endl; else if(userAnswer == 'N') break; else cout << "Press Y / N" << endl; } return 0; }

Permalänk
Medlem

Precis som vajjan skrev.

Använd std::cin