Comment écrire un programme en C qui va afficher certains autres programmes bien annotés et lorsqu'on appuie sur un numéro le programme va s'exécuter. Ensuite lorsqu'on appuie sur le dernier numéro on quitte le programme.
Bonjour, Merci de retirer toutes les lettres en capitales de votre titre, et d'écrire un titre de sujet en rapport avec votre problématique. Pas la peine d'écrire en gras, on sait vous lire sans.
Majuscules abusives
L'écriture en majuscules est considérée comme une parole criée et diminue autant la lisibilité du texte que sa compréhension. Les majuscules abusives sont donc interdites aussi bien dans les titres que dans les messages.
Manque de Politesse
Votre message ne comporte pas ou peu de formules de politesse (« Bonjour », « Merci », « Au revoir », etc.). Les règles du site exigent que chaque nouveau message comporte un minimum de politesse. Après tout, les gens qui répondent le font gratuitement, sur leur temps libre. Ils méritent bien un minimum de considération, n'est-ce pas ?
Mauvais titre
Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.
Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).
De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.
Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.
Pour modifier votre titre, éditez le premier message de votre sujet.
Tu peux peut-être pour tester si on tape sur une touche du clavier la lib conio.h,
tu auras besoin de stdio.h et le conio.h dont voici son contenu, tu as juste à créer un nouveau fichier nommé "conio.h" dans ton espace de travail et l'inclure dans ton programme à la compilation en faisant: #include "conio.h":
/*
* conio.h
* This file has no copyright assigned and is placed in the Public Domain.
* This file is a part of the mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER within the package.
*
* Low level console I/O functions. Pretty please try to use the ANSI
* standard ones if you are writing new code.
*
*/
#ifndef _CONIO_H_
#define _CONIO_H_
/* All the headers include this file. */
#include <_mingw.h>
#ifndef RC_INVOKED
#ifdef __cplusplus
extern "C" {
#endif
_CRTIMP char* __cdecl _cgets (char*);
_CRTIMP int __cdecl _cprintf (const char*, ...);
_CRTIMP int __cdecl _cputs (const char*);
_CRTIMP int __cdecl _cscanf (char*, ...);
_CRTIMP int __cdecl _getch (void);
_CRTIMP int __cdecl _getche (void);
_CRTIMP int __cdecl _kbhit (void);
_CRTIMP int __cdecl _putch (int);
_CRTIMP int __cdecl _ungetch (int);
#ifndef _NO_OLDNAMES
_CRTIMP int __cdecl getch (void);
_CRTIMP int __cdecl getche (void);
_CRTIMP int __cdecl kbhit (void);
_CRTIMP int __cdecl putch (int);
_CRTIMP int __cdecl ungetch (int);
#endif /* Not _NO_OLDNAMES */
#ifdef __cplusplus
}
#endif
#endif /* Not RC_INVOKED */
#endif /* Not _CONIO_H_ */
ensuite, tu fais une boucle while et tu test si une touche est enfoncée:
tu auras besoin de stdio.h et le conio.h dont voici son contenu, tu as juste à créer un nouveau fichier nommé "conio.h" dans ton espace de travail et l'inclure dans ton programme à la compilation en faisant: #include "conio.h": ...
Spectrefr : n'empêche que l'objection de rouIoude est juste :
− Soit on a la bibliothèque conio et il est inutile de créer un fichier "conio.h", il existe déjà.
− Soit on n'a pas cette bibliothèque, et il ne suffit pas de créer le fichier "conio.h", il faut aussi avoir l'exécutable associé.
Ton dernier message est à côté de la plaque parce que rouIoude participe ici depuis des années (je me suis inscrit en 2012 et il me semble qu'il était déjà présent) et est toujours de bon conseil. En tout cas il sait de quoi il parle.
Anonyme
18 mars 2022 à 21:07:30
- Message modéré pour le motif suivant : Message complètement hors sujet
Parce qu'il existe des alternative un peu plus récentes et plus portables qu'un truc issu de Turbo C pour fonctionner en DOS3.22 ? Il y a PDCurses notamment si on veut se lancer dans un TUI (et je ne parle pas de la gestion des événements ou de la souris dans ce cas); mais bon, en général le couple printf/scanf fait largement l'affaire. De plus la première réponse de Pierrot me semble correct et moins HS.
Après, si ça se trouve ce que le PO appelle «programme» sont en fait des fonctions et non des programmes externes …
La première des choses à faire Saturnin est de poser une question qui n'est pas que claire pour toi, mais claire pour tous.
SaturninSpéroAvlessi a écrit:
Comment écrire un programme en C qui va afficher certains autres programmes bien annotés et lorsqu'on appuie sur un numéro le programme va s'exécuter. Ensuite lorsqu'on appuie sur le dernier numéro on quitte le programme.
c'est quoi un «programme bien annoté» ? est-ce que tu as une liste de programme (exécutables externes) que tu dois exécuter à partir d'un programme que tu écris toi-même ? est-ce que ce ne sont que des fonctions que tu auras écrites et que ton programme appellera lors qu'un utilisateur choisiras une option dans un menu ?
c'est quoi «appuie sur un numéro» ? est-ce que tu auras simplement imprimé à l'écran une correspondance entre un nombre et une fonctionnalité ? est-ce que c'est quelque chose de plus complexe ?
Si tu as un énoncé alors le plus simple est de nous le partager, ça évite des problèmes XY.
J'ai eu le temps de voir le code, à priori c'est un menu qui appelle des fonctions avec un switch.
Il n'y a pas d'appel de programme, ni de numéro à appuyer, seulement la saisie d'un chiffre qui va servir à rediriger vers la bonne fonction à l'aide du switch.
@rouIoude: Des foncions ou des programmes? Je pourrais modifier mon code pour placer des pointeurs vers fonctions au lieu des commandes. Pas forcément besoin de switch.
Le Tout est souvent plus grand que la somme de ses parties.
Ça pourrait avoir l'air de ceci: - typedef struct Calls Calls; struct Calls { char *msg; void (*fcn)(int[], int); }; ... Calls menu [] { {"fonction 1", fonction1}, ... }; // Saisir le choix et le valider comme je l'ai montré plus haut ... (*menu[choix].fcn)(tableau, taille); - Ici je passe deux paramètres à mes fonctions. Ça peut être modifié.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.