det jeg mener Rasmus(koen) er at hvis man trykker fx."m" skal programmet lægge tre til en variabel men også lægge 1 til anden.
Mage tak for svarne.
==========================
Forstyr aldrig din Fjende når han laver en feljtagelse
Nu har Jens jo givet et eksempel, men jeg vil da også lige give et hvis det måske kunne hjælpe lidt.
#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
#if defined(_WIN32)
#else
/*155=ø*/
cout << "Dette program k"<<(char)155<<"rer kun under Windows(32 bit).";
#endif
int main() {
/*HANDLE til output stream*/
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
/*skal bruges til at fjerene gamle værdier, ellers*/
/*kan en variabel der var 125 og blev sat ned til 3 se*/
/*sådan ud: a = 511*/
char TomLinje[11]=" ";
/*kordinat til hvor værdien af variablen skal skrives
det bliver skrevet på x=4,y=0, hvor x står i dette eksempel "a = x"
y værdien bliver forhøjet på b og c verisonen*/
COORD aPos={4,0};
COORD bPos={4,1};
COORD cPos={4,2};
COORD startPos={0,0};
/*variablerne der skal holde vores tal*/
int a,b,c;
/*lav alle variablerne 0*/
a=b=c=0;
/*rens skærmen*/
system("cls");
/*Sæt cursoren til 0,0 for at være sikker*/
SetConsoleCursorPosition(hOut,startPos);
cout << "a = \\nb = \\nc = ";
char svar=NULL;
while(1)
{
/*sæt cursoren og skriv alle resultaterne*/
SetConsoleCursorPosition(hOut,aPos);
cout << TomLinje;
SetConsoleCursorPosition(hOut,aPos);
cout << a;
SetConsoleCursorPosition(hOut,bPos);
cout << TomLinje;
SetConsoleCursorPosition(hOut,bPos);
cout << b;
SetConsoleCursorPosition(hOut,cPos);
cout << TomLinje;
SetConsoleCursorPosition(hOut,cPos);
cout << c;
svar=getch();
switch(svar)
{
case 'a':
case 'A':
a++;
break;
case 'b':
case'B':
b++;
break;
case 'c':
case'C':
c++;
break;
case 'd':
case 'D':
a--;
break;
case 'e':
case'E':
b--;
break;
case 'f':
case'F':
c--;
break;
case 'q':
case 'Q':
return 0;
default:
break;
}
}
}
Her er et par unormale ting så jeg har prøvet at lave et par kommentarer, men forkalrer lige kort nogle af de ikk særlig normale funktioner:
"system(cls)", at skrivei system er det samme som at skrive i en konsol, så hvis du fx skriver "cls" bliver skærmen renset.
HANDLE er en type som tit bliver brugt i Windows programmering og kan repræsentere alt fra et tegne object(HDC) til et vindue(HWND), men dette er nogle andre slags handler, et handle bliver også brugt til fx multithreading, GetStdHandle(STD_OUTPUT_HANDLE), giver så et output handle så du kan bruge den til at repræsentere konsollens output.
COORD er en simpel struktur som indeholder et x og et y koordinat, med disse koordinater kan man så sætte hvor man skriver(hvor cursoren er).
SetConsoleCursorPosition(), sætter hvor cursoren er ved hjælp af en output handle og et COORD objekt.
Skriv hvis der er noget andet du ikke forstår, laver også lige en simpel(dårligere) version af dette program og poster det om lidt, da dette er lidt stort og uoverskueligt for nogle.
Her er så den "lidt" simplere version:
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
/*variablerne der skal holde vores tal*/
int a,b,c;
/*lav alle variablerne 0*/
a=b=c=0;
char svar=NULL;
while(1)
{
system("cls");
cout << "a = "<<a<<endl;
cout << "b = "<<b<<endl;
cout << "c = "<<c;
svar=getch();
switch(svar)
{
case 'a':
case 'A':
a++;
break;
case 'b':
case'B':
b++;
break;
case 'c':
case'C':
c++;
break;
case 'd':
case 'D':
a--;
break;
case 'e':
case'E':
b--;
break;
case 'f':
case'F':
c--;
break;
case 'q':
case 'Q':
return 0;
default:
break;
}
}
}
PS: I dit program skal du huske at gøre opmærksom på hvilke taster der gør hvad og måske få h til at vise hjælp, hvis du afprøver det inden du kigger på source coden forhøjer du a, b og c med a, b og c og gør a lavere med d, b med e og c med f.
[Redigeret d. 30/07-04 22:06:44 af Rasmus(KOEN)]