C++ keyboard
30 juni 2008 - 14:28   
geplaatst door: stijnschoor
Hallo

In een programma wat ik aan het schrijven ben moet de gebruiker op een knop(bv: y) drukken. Weet iemand hoe dit moet?

Alvast Bedankt

"What's in a name that we call a mac"
Shakespeare
C++ keyboard
30 juni 2008 - 19:43    reactie #1
geplaatst door: McLangendorff
Ik denk dat er op een cpp site genoeg info is te vinden, maar:

#include <iostream.h>

int main()
{
   char c;

   cout << "Druk op een toets : "
   cin << c;
   cout << endl << "Toets " << c << " is ingedrukt" << endl;
   /* Of gebruik printf, scanf */

   if ( c == 'y')
   {
       cout << "Hello World" << endl;
   }
}

iMac 24", ATV-2, Mac Mini, iPhone 4S, iPad-2, iPhone 3GS, 2xiMac G3, iBook G3 Clamshell, Performa SE/30, iPod Video 60Gb, iPod Nano 3rd 4Gb
C++ keyboard
30 juni 2008 - 19:48    reactie #2
geplaatst door: stijnschoor
Dit principe snapte ik al. Maar ik wil graag weten of dit ook kan zonder dat de gebruiker op enter hoeft te drukken.

(Bewerkt door stijnschoor om 22:49, 30-06-2008)

"What's in a name that we call a mac"
Shakespeare
C++ keyboard
30 juni 2008 - 20:32    reactie #3
geplaatst door: McLangendorff
Aha, denk dan dat je getchar() wilt gebruiken,

c = getchar();


iMac 24", ATV-2, Mac Mini, iPhone 4S, iPad-2, iPhone 3GS, 2xiMac G3, iBook G3 Clamshell, Performa SE/30, iPod Video 60Gb, iPod Nano 3rd 4Gb
C++ keyboard
30 juni 2008 - 21:45    reactie #4
geplaatst door: bert
(Uhm, als gebruiker vind ik het niet erg Bert-vriendelijk als jij me voorschrijft op welke knop ik moet drukken. Ik weet niet goed waar die knop zit. Nou kan ik blind typen, dus bij mij gaat het vanzelf. Voor andere mensen is het een zoektocht op het toetsenborg.

Kijk eens naar Safari. Voor een stuk venster onder wat je nu ziet, kun je op de spatie-balk drukken (lekker groot en gemakkelijk), maar ook Page-down of de pijltjestoets naar beneden. En natuurlijk met de muis. Nou schrijf jij misschien nog geen programma met vensters, maar zelfs met een Terminal-achtig programma kun je aan gebruiksvriendelijkheid doen.

Ik zeg niet dat het gebruik van de y-toets voor jouw programma geen goede oplossing is, maar denk je er daarbij wel aan dat bij de gebruiker misschien de caps-lock aan staat? Of te wel, reageert je programma straks ook op "Y" ipv "y"? Het is erg vervelend als programma's niet doen wat de gebruiker wil. Als programmeur moet je proberen helderziende te zijn. Als dat niet zo goed lukt, dan toch proberen om in de huid van een domme gebruiker te kruipen).

Bert
Die je wel kan laten zien hoe je op de y-toets moet drukken   ;-)

(Bewerkt door bert om 22:11, 30-06-2008)

C++ keyboard
1 juli 2008 - 12:08    reactie #5
geplaatst door: stijnschoor
getchar is wat ik nodig had, toch moet de gebruiker op enter drukken. kan ik dit verhelpen?

Bert snap ik niet helemaal,
1. Een commandtool heeft geen vensters, anders zou ik het wel Objective-C schrijven en Cocoa gebruiken.

Citaat
als gebruiker vind ik het niet erg Bert-vriendelijk als jij me voorschrijft op welke knop ik moet drukken.

2. Het is niet zo dat ik zeg welke knoppen de gebruiker moet indrukken, het is meer een keuze.
3. Bert-vriendelijk :shocked:

"What's in a name that we call a mac"
Shakespeare
C++ keyboard
1 juli 2008 - 18:51    reactie #6
geplaatst door: bert
Ik zeg leterlijk dat jij geen venster-programma schrijft. Ik noemde Safari als een voorbeeld van een programma dat de gebruiker niet voorschrijft, maar verschillende mogelijkheden geeft waarbij het waarschijnlijk is dat de gebruiker er achter komt dat die doen wat hij wil.

Ik nam aan dat de "y" toets voor "yes" staat. Vandaar dat ik je aanspoorde om na te denken of het voor jouw programma ook Bert-vriendelijker kan.

Ik gebruik de term Bert-vriendelijk, omdat van Windows nu ook al gezegd wordt dat ze gebruiksvriendelijk zijn. Als de term zo losjes wordt gebruikt, moet er een term zijn die hogere eisen stelt. Ik gebruik de term Bert-vriendelijk. Ik geef toe, hij slaat nog niet erg aan, maar sommige mensen snappen 'm wel.

Bert  

C++ keyboard
1 juli 2008 - 19:39    reactie #7
geplaatst door: stijnschoor
Ah, ik ben het er mee eens dat "gebruikervriendelijksheid" wel erg snel gebruikt wordt. Maar waar ligt de grens? Blender is gebruiksvriendelijker dan Maya(vind ik) maar valt in het niets met iLife. Doordat dat zo vaak wordt gebruikt neemt de waarde af(soort van vraag en aanbod).
"What's in a name that we call a mac"
Shakespeare
C++ keyboard
1 juli 2008 - 22:13    reactie #8
geplaatst door: McLangendorff
Okay dacht dat een getchar wel zou werken.

Misschien dat je een read op stdin kan doen, zoals:

cin.get(c); deze leest een karakter in van stdin

iMac 24", ATV-2, Mac Mini, iPhone 4S, iPad-2, iPhone 3GS, 2xiMac G3, iBook G3 Clamshell, Performa SE/30, iPod Video 60Gb, iPod Nano 3rd 4Gb
C++ keyboard
2 juli 2008 - 10:06    reactie #9
geplaatst door: stijnschoor
Helaas, misschien is het niet mogelijk.
"What's in a name that we call a mac"
Shakespeare