Genre de menu en c

Résolu/Fermé
cabon.contact Messages postés 55 Date d'inscription dimanche 3 mars 2013 Statut Membre Dernière intervention 10 décembre 2013 - 25 mars 2013 à 19:43
cabon.contact Messages postés 55 Date d'inscription dimanche 3 mars 2013 Statut Membre Dernière intervention 10 décembre 2013 - 25 mars 2013 à 22:16
Bonjour,

J'aimerais créer un sorte de micro-langage de programmation à titre éducatif, c'est à dire que j'aimerais qu'en écrivant dans une console la commande suivante : <input type="text"> cela affiche, "cela créer une zone de texte".
Je pensais passer par un Switch, mais j'aimerais remplacer case 0 (case 1,case 2..) par case <input type="text"> vous pensez que c'est possible ?

Merci d'avance !

A voir également:

3 réponses

Salut, il faut une fonction qui renvoi une valeur à partir d'une comparaison de chaines de caractères comme là:
http://www.cppfrance.com/codes/SWITCH-STRINGS-CPLUSPLUS_39135.aspx


edit: ça revient a faire des if sauf qu'ils sont dans une boucle de la fonction et qu'il n'y a qu'a toucher la façon dont on appelle la fonction en rajoutant d'autre chaines de caractère en argument
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
25 mars 2013 à 20:46
string n'existe pas en C...
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
25 mars 2013 à 20:48
Non ce n'est pas possible.
Si tu souhaites créer un langage, je te conseille de passer par flex/yacc.
Sinon, faut que tu nous en dises plus sur ce que tu souahites faire. Pour comparer deux chaînes entre elle, tu peux utiliser strcmp().
0
cabon.contact Messages postés 55 Date d'inscription dimanche 3 mars 2013 Statut Membre Dernière intervention 10 décembre 2013
25 mars 2013 à 20:58
Il me semblait bien,
je ne souhaite pas créer un langage mais plutôt un genre d'interpréteur interne au 'C'.
Par exemple l'utilisateur entre dans la console la commande "new.var" et cela va créer une variable.

Exemple :

const char newVar[20] = "new.var";
char input[20];
scanf("%c",&input);
if(input == newVar){
// instruction
}

J'ai été assez clair ? Merci de m'avoir répondu
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
25 mars 2013 à 21:45
scanf("%c",&input);
"%c", c'est pour un char pas pour une chaîne de caractères.

if(input == newVar){
Ce n'est pas == qu'on utilise pour comparer deux chaînes de caractères mais strcmp() comme dit plus haut.
Ce qui donnerait :
scanf("%19s",&input);
if(strcmp(input, new.var) == 0) {
     /*instruction*/
}

Le mieux serait d'utiliser fgets() (au lieu de scanf()).
0
cabon.contact Messages postés 55 Date d'inscription dimanche 3 mars 2013 Statut Membre Dernière intervention 10 décembre 2013
25 mars 2013 à 22:16
Merci beaucoup pour ton aide, je vais me renseigner sur le fgets, merci encore !
0