
| Page 1 | |||||
| Auteur | Message | ||||
|---|---|---|---|---|---|
| 1 visiteur sur ce sujet (1 Anonyme) | |||||
| Page 1 | |||||
clems4ever
|
# Posté le 30/08/2008 à 11:08:57 | ||||
Smouik smouik !![]()
|
bonjour tout le monde
après avoir pris connaissance des paramètres variables, je me suis demandé si l'on pouvait connaitre le type de variable que l'on reçoit (et que l'on ne connait pas puisque le nombre et le type de variable n'est pas tout le temps le même). existe-t-il un fonction pour connaître le type de variable ? si oui, laquelle ? merci d'avance clems4ever ![]() Actuellement en train de bosser sur mon site : Regarder-TV pour regarder ou télécharger des films et séries ! Aidez votre prochain ! 2 minutes suffisent |
||||
Octal
|
# Posté le 30/08/2008 à 11:15:15 | ||||
Look at me![]()
études : SUPINFO PACA à Marseille |
Non. C'est pour cela que des fonctions comme printf utilisent en premier argument une chaîne de format. Selon le code de format transmis, cela nous permet de connaître le type de variable voulu.
Tutoriels langage C :
![]() |
||||
-ed-
|
# Posté le 30/08/2008 à 11:16:38 | ||||
C is a sharp tool![]()
études : ECE |
Citation : clems4ever
après avoir pris connaissance des paramètres variables, je me suis demandé si l'on pouvait connaitre le type de variable que l'on reçoit (et que l'on ne connait pas puisque le nombre et le type de variable n'est pas tout le temps le même). existe-t-il un fonction pour connaître le type de variable ? Non et ça ne sert à rien. Dans une fonction variadic, on utilise le paramètre format pour indiquer, entre autres, les types attendus, comme dans printf(), scanf() etc. Bon ben grillaid, je vais me recoucher...
Édité
le 30/08/2008 à 11:17:23
par -ed-
Emmanuel Delahaye. Des infos sur la programmation et le langage C http://bien-programmer.blogspot.com/ http://bien-programmer.forum-actif.net/forum.htm ![]() |
||||
clems4ever
|
# Posté le 30/08/2008 à 11:47:26 | ||||
Smouik smouik !![]()
|
dans printf, on ne sait pas à l'avance si l'on va afficher une chaine, un nombre ou autre .....
![]() Actuellement en train de bosser sur mon site : Regarder-TV pour regarder ou télécharger des films et séries ! Aidez votre prochain ! 2 minutes suffisent |
||||
aiii
|
# Posté le 30/08/2008 à 11:50:30 | ||||
![]()
|
Ben si, ils viennent de te l'expliquer, c'est le code format qui indique le type du Nième argument.
Exemple avec ceci: Code : C
Le premier code format indique que le deuxième argument est de type int, et le deuxième code format indique que le 3ème argument est une chaîne.
Édité
le 30/08/2008 à 11:53:31
par aiii
|
||||
-ed-
|
# Posté le 30/08/2008 à 13:13:26 | ||||
C is a sharp tool![]()
études : ECE |
Citation : clems4ever
dans printf, on ne sait pas à l'avance si l'on va afficher une chaine, un nombre ou autre ..... La chaine de caractères du format contient des informations qui sont interprétées à l'exécution par printf(). Si le programmeur se trompe, Code : C
le comportement est indéfini. Un compilateur sérieux et bien configuré permet de repérer ce genre de bug. Je n'arrive pas bien à voir quel est le problème que tu veux résoudre. Avant de trouver des moyens (comment ?) , il faut définir le but (quoi ?). Que veux tu faire exactement ?
Édité
le 30/08/2008 à 13:16:55
par -ed-
Emmanuel Delahaye. Des infos sur la programmation et le langage C http://bien-programmer.blogspot.com/ http://bien-programmer.forum-actif.net/forum.htm ![]() |
||||
clems4ever
|
# Posté le 17/09/2008 à 18:19:06 | ||||
Smouik smouik !![]()
|
oui mais je veux créer une fonction qui comprend printf mais qui va afficher un résultat trop variable que l'on ne peut pas prévoir donc il faudrait prévoir à l'avance le format
![]() Actuellement en train de bosser sur mon site : Regarder-TV pour regarder ou télécharger des films et séries ! Aidez votre prochain ! 2 minutes suffisent |
||||
Fvirtman
|
# Posté le 17/09/2008 à 18:21:27 | ||||
![]()
|
Et conrectement, que ferai ta fonction ?
Tutos sur mon site : C/C++ basé sur des exemples Mes programmes à peu près finis |
||||
-ed-
|
# Posté le 17/09/2008 à 18:33:27 | ||||
C is a sharp tool![]()
études : ECE |
Citation : clems4ever
oui mais je veux créer une fonction qui comprend printf mais qui va afficher un résultat trop variable que l'on ne peut pas prévoir donc il faudrait prévoir à l'avance le format J'ai rien compris. Essaye d'être un peu plus concret... Si c'est pas clair dans ta tête, normal que tu n'y arrives pas.
Édité
le 17/09/2008 à 18:33:42
par -ed-
Emmanuel Delahaye. Des infos sur la programmation et le langage C http://bien-programmer.blogspot.com/ http://bien-programmer.forum-actif.net/forum.htm ![]() |
||||
Ephilion
|
# Posté le 17/09/2008 à 18:42:30 | ||||
printf ("hello world");![]()
|
Je crois savoir ce qu'il veut
par exemple : Code : Console
Et tu ne sais pa si l'utilisateur va entrer du texte, ou un nombre. C'est ça ? Si tel est le cas, tu devras attendre de faire du C++, désolé. Vous voulez apprendre MS-DOS ? Ou réviser votre C ? N'hésitez pas à aller sur mon site ! : http://ephilion-tuto.e-monsite.com/ Dernier article : le binaire (comptez en binaire !) |
||||
-ed-
|
# Posté le 17/09/2008 à 19:50:45 | ||||
C is a sharp tool![]()
études : ECE |
Citation : Ephilion
Je crois savoir ce qu'il veut par exemple : Code : Console
Et tu ne sais pa si l'utilisateur va entrer du texte, ou un nombre. C'est ça ? Si tel est le cas, tu devras attendre de faire du C++, désolé. Je ne vois pas le rapport. Ce qui qualifie la saisie , c'est le type de la variable, c'est pas la magie noire... Quelque soit le langage, on peut toujours faire une saisie texte (en C, fgets()). Après, si on a défini des critères fiables, on peut en faire une chaine ou un nombre voire une donnée structurée (date, heure, adresse...). Mais il n'y a pas d'heuristique magique qui va lire dans la pensée de celui qui a frappé les touches. L'informatique, c'est déterministe ou alors c'est le chaos... Emmanuel Delahaye. Des infos sur la programmation et le langage C http://bien-programmer.blogspot.com/ http://bien-programmer.forum-actif.net/forum.htm ![]() |
||||
Ephilion
|
# Posté le 18/09/2008 à 20:34:04 | ||||
printf ("hello world");![]()
|
Oui, j'avoue sur ce coup je me suis trompé. Mon code d'exemple est impossible en C/C++ mais possible avec un langage de haut niveau comme le langage Ruby car il n'y a plus de format pour les variables. En ruby, une variable peut supporter sans broncher du texte ou un nombre.
clems4ever, tu peux tenter d'apprendre le ruby pour faire ton programme sur ce site : http://rpgcreative.net/programmation/ruby.html et sur ce tuto du site du zéro (plus accessible) http://www.siteduzero.com/tutoriel-3-1 [...] -en-ruby.html Bonne chance ! Vous voulez apprendre MS-DOS ? Ou réviser votre C ? N'hésitez pas à aller sur mon site ! : http://ephilion-tuto.e-monsite.com/ Dernier article : le binaire (comptez en binaire !) |
||||
-ed-
|
# Posté le 19/09/2008 à 00:21:22 | ||||
C is a sharp tool![]()
études : ECE |
Citation : Ephilion
Oui, j'avoue sur ce coup je me suis trompé. Mon code d'exemple est impossible en C/C++ mais possible avec un langage de haut niveau comme le langage Ruby car il n'y a plus de format pour les variables. En ruby, une variable peut supporter sans broncher du texte ou un nombre. En ruby, le type est dynamique. Une variable est définie et type lors de sa première initialisation. Après le typage est fort Code : Ruby
Code : Ruby
Édité
le 19/09/2008 à 00:24:18
par -ed-
Emmanuel Delahaye. Des infos sur la programmation et le langage C http://bien-programmer.blogspot.com/ http://bien-programmer.forum-actif.net/forum.htm ![]() |
||||
Ephilion
|
# Posté le 19/09/2008 à 07:31:00 | ||||
printf ("hello world");![]()
|
Ah bon ??!! Désolé, en fait je n'avais jamais essayé, mais je crois qu'il existe des méthodes de conversion, non ?
Vous voulez apprendre MS-DOS ? Ou réviser votre C ? N'hésitez pas à aller sur mon site ! : http://ephilion-tuto.e-monsite.com/ Dernier article : le binaire (comptez en binaire !) |
||||
Dakeyras Khan
|
# Posté le 19/09/2008 à 07:37:23 | ||||
|
Scientia Potestas Est !
|
ben ... c'est pas très difficile à réaliser ton exemple Ephilion hein ...
tu récupère une chaîne, et puis tu affiches une chaîne ... quelque soit l'entrée, ça marche
"Okay, there's bad code and then there's evil code, and the difference is pretty much whether or not the code wears a stylish cape and has a secret lair." - Chalain "Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why. " - Anon "It is practically impossible to teach good programming style to students that have had prior exposure to Basic; as potential programmers they are mentally mutilated beyond hope of regeneration. " - Edsger Dijkstra |
||||
clems4ever
|
# Posté le 19/09/2008 à 16:54:33 | ||||
Smouik smouik !![]()
|
oui mais j'aimerais stocker la chaine surt une variable chiffre si s'en est un
![]() Actuellement en train de bosser sur mon site : Regarder-TV pour regarder ou télécharger des films et séries ! Aidez votre prochain ! 2 minutes suffisent |
||||
Octal
|
# Posté le 19/09/2008 à 17:03:00 | ||||
Look at me![]()
études : SUPINFO PACA à Marseille |
Citation : clems4ever
oui mais j'aimerais stocker la chaine surt une variable chiffre si s'en est un Ta demande est toujours floue, on a du mal à comprendre. Tu pourrais un peu expliquer de manière détaillée ce que tu souhaites faire ? Tutoriels langage C :
![]() |
||||
Dakeyras Khan
|
# Posté le 20/09/2008 à 08:43:32 | ||||
|
Scientia Potestas Est !
|
en effet on comprends rien, tu obtiendrais quoi pour la chaine :
Bonjour 42, 10^45 Au revoir. ? "Okay, there's bad code and then there's evil code, and the difference is pretty much whether or not the code wears a stylish cape and has a secret lair." - Chalain "Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why. " - Anon "It is practically impossible to teach good programming style to students that have had prior exposure to Basic; as potential programmers they are mentally mutilated beyond hope of regeneration. " - Edsger Dijkstra |
||||
alexises
|
# Posté le 20/09/2008 à 09:00:40 | ||||
merci m@téo pour la v3![]()
|
ok
je vais t'aider doncmalgré ce que tout le monde dit c'est possible Code : C
tu peut améliorer le code pour prendre les nombres négatifs je te laisse chercher le code a quand même une limite : le nombre doit étre situer en début de chaine
Édité
le 20/09/2008 à 09:01:54
par alexises
![]() |
||||
clems4ever
|
# Posté le 24/09/2008 à 16:19:27 | ||||
Smouik smouik !![]()
|
ok merci
![]() Actuellement en train de bosser sur mon site : Regarder-TV pour regarder ou télécharger des films et séries ! Aidez votre prochain ! 2 minutes suffisent |
||||
tc
|
# Posté le 24/09/2008 à 16:34:52 | ||||
Readability counts![]()
études : EPFL |
Citation : alexises
ok je vais t'aider doncmalgré ce que tout le monde dit c'est possible Code : C
tu peut améliorer le code pour prendre les nombres négatifs je te laisse chercher le code a quand même une limite : le nombre doit étre situer en début de chaine C'est pas un scoop, -ed- l'a déjà mentionné plus haut. Il est possible de saisir une chaine (pour cela, utiliser scanf() comme tu le fais n'est pas adapté) et d'analyser ensuite son contenu sur la base d'heuristiques permettant de décider du type de l'information entrée par l'utilisateur. Le défis est de parvenir à définir des heuristiques robustes. Thierry "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow | FAQ-Python | FAQ-C - FAQ-c.l.c | FAQ-C++ - FAQ-Lite | |
||||
Retour au forum "Langage C" ou à la liste des forums
Le Site du Zéro vous proposera bientôt de nouveaux cours partant de Zéro dans d'autres domaines que l'informatique !

