UTILISATION DES TOUCHES F1-F12 DANS UN PROJET CONSOLE

Messages postés
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
- - Dernière réponse : cs_manubarnum
Messages postés
8
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
21 novembre 2004
- 17 nov. 2004 à 16:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26179-utilisation-des-touches-f1-f12-dans-un-projet-console

D1m3x
Messages postés
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
1 -
Essaye de rendre le programme un peu plus portable, déjà en utilisant le simple printf( ), pas besoin de couleur après tout... Ensuite en utilisant getchar( ) de stdio.h et ton programme sera bon :)

Tu peux également en faire une fonction par exemple, alors tu peux créer une fonction qui retourne un char * qui dira quel touche a été appuyé, donc tu fais un getchar( ) dans la fonction et tu regarde si c'est F1 alors tu écris: "F1" dans le char * etc... enfin rien que des sugestion!!!

en tout cas tu devrais le rendre portable :)

ciao ;)
racpp
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
7 -
salut,
Merci pour ces remarques mais je précise que ce source est tout à fait portable. En effet "conio.h" existe dans tous les compilateurs. J'ai utilisé "cprintf" et "getch" car ils font partie de "conio.h". La fonction getchar() n'est pas utilisable ici car elle attend l'appui sur ENTREE. Il serait inutile d'inclure "stdio.h" rien que pour printf() car cprintf() fait exactement la même chose. Ca n'a rien à voir avec la couleur. L'idée d'une fonction qui retourne un char* est bonne mais mon objectif est de rester le plus simple possible pour bien montrer le fonctionnement du code, surtout pour les débutants. Côté portabilité, je viens de le tester sur un vieux compilateur TURBO C de 1988. Il a juste suffit d'ajouter "\r" après les "\n" pour forcer le retour au début de la ligne.
racpp
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
7 -
Il est vrai que "conio.h" n'est pas une librairie AINSI-C mais elle existe dans tous les compilateurs pour MS-DOS et Windows :
-Tous les compilateurs de Microsoft (Visual C++ etc).
-Tous les compilateurs de Borland (Turbo, Builder etc).
-Les compilateurs DJGPP.
Pour les autres, qui appartiennent initialement au monde UNIX , il existe des émulations:
-Dev c++: remplacer "conio.h" par "conio.c".
-LCC Win32: fichier "conio.h" téléchargeable.
Moi je ne travaille que sur DOS et Windows, c'est pour cela que j'ai un peu généralisé en disant "tous les compilateurs".
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
pas renvoyer une char*, ça demanderait de comparer des chaînes. il vaut mieux définir des constantes:
const int kF1 = 59;
const int kF2 = 60;
...

ça permet de ne gérer que des entiers, c'est plus rapide.
cs_djl
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
5 -
les constantes ? mais elles existent deja ! on renvoi le code des touches

int getch()

D1m3x > getchar lit stdin (pas le clavier), comment tu veux savoir si on a appuyé sur une touche F*
et surtout comment tu veut qu'un programme quit lit le clavier soit portable, le c ne connais pas le clavier