Genre de menu en c

Résolu
cabon.contact Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   -  
cabon.contact Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   -
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

JwTdd
 
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   Statut Contributeur Dernière intervention   1 846
 
string n'existe pas en C...
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   1 846
 
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   Statut Membre Dernière intervention  
 
Merci beaucoup pour ton aide, je vais me renseigner sur le fgets, merci encore !
0