Afficher la valeur d'une variable

Afficher la valeur d'une variable - C - Programmation

Marsh Posté le 04-01-2005 à 14:11:03    

Voilà, j'ai des variables du genre :

Code :
  1. int a1 = 5;
  2. int a2 = 3;
  3. int a3 = 25;
  4. ...
  5. char sNom[3];


 
je voudrais pouvoir afficher le contenu de l'une de ces variables en fonction de leur nom, ce nom étant saisi par l'utilisateur avec :

Code :
  1. scanf("%s", &sNom);


 
ex : je saisis "a2" lors du scanf et via un printf("%d", ...); j'affiche la valeur de a2, c'est-à-dire 3.
 
C'est faisable simplement ça? Parce que de mémoire, je ne crois pas. En fait, ça reprend le même principe que #nomVar dans le language des TI-92, où nomVar contient le nom d'une variable...
 
Merci de m'aider :jap:

Reply

Marsh Posté le 04-01-2005 à 14:11:03   

Reply

Marsh Posté le 04-01-2005 à 14:13:07    

non, c'est pas faisable.
 
scanf("%s", &sNom); est dangereux et erroné
-> fgets(sNom, sizeof sNom, stdin);

Reply

Marsh Posté le 04-01-2005 à 14:18:28    

Taz a écrit :

non, c'est pas faisable.
 
scanf("%s", &sNom); est dangereux et erroné
-> fgets(sNom, sizeof sNom, stdin);


 
oui, je me souviens maintenant, quand on compile sous Linux, le compilo avertit que scanf, c'est aps terrible et recommande fget...
 
Sinon, comme méthode, une table de correspondance avec les adresses des variables ça pourrait le faire, genre :
"a1" &a1
"a2" &a2
"a3" &a3
 
 
les débuggeurs le font bien ce genre de chose. Ils font comment? Merci de ton aide Taz.

Reply

Marsh Posté le 04-01-2005 à 14:22:30    

et ben il charge la table de toutes les variables, etc. Mais ça a très peu d'intérêt dans un programme : tu ne voudrais pas que l'utilisateur écrase n'importe quelle variable au petit bonheur la chance.

Reply

Marsh Posté le 04-01-2005 à 14:29:01    

Taz a écrit :

et ben il charge la table de toutes les variables, etc. Mais ça a très peu d'intérêt dans un programme : tu ne voudrais pas que l'utilisateur écrase n'importe quelle variable au petit bonheur la chance.


 
c'est dans un contexte assez particulier, pas le genre de prgm qu'on file au premier venu. Comment on fait pour charger la table des variables?

Reply

Marsh Posté le 04-01-2005 à 14:31:37    

t'écris un debugger.

Reply

Marsh Posté le 04-01-2005 à 14:32:28    

rufo a écrit :

c'est dans un contexte assez particulier, pas le genre de prgm qu'on file au premier venu. Comment on fait pour charger la table des variables?


C'est compliqué, et bien au delà de l'usage que tu en ferais...
 
Le plus simple, comme tu l'as dit, c'est de garder une table qui associe le nom de la variable avec son adresse (et éventuellement son type).
 

Reply

Marsh Posté le 04-01-2005 à 14:33:52    

ok merci de votre aide à tous les 2. Si par hasard qq'un d'autre avait une idée...

Reply

Marsh Posté le 04-01-2005 à 14:35:13    

mais non bordel ! le plus simple c'est qu'il apprenne a faire un tableau !

Reply

Marsh Posté le 04-01-2005 à 14:55:36    

Reply

Marsh Posté le 04-01-2005 à 14:55:36   

Reply

Marsh Posté le 04-01-2005 à 14:56:23    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed