J'aimerai faire une action en fonction du type de la variable enregistrée avec un cin.
Dans les langages de script comme PHP, les variables n'ont pas vraiment de type bien défini, une variable déclarée par $machin= "42"; peut être considérée comme un nombre à un endroit du programme, et comme une chaîne de caractères à un autre endroit. Du coup, on a besoin de deux opérateurs "additifs" : + (addition de nombres) et . (concaténation de chaînes)
En C++, au contraire, on a un typage très fort des variables. Une variable de type "entier signé" n'est pas une variable de type "chaîne de caractères" ni une variable de type "entier non signé". En particulier, le type d'une variable ne dépend pas de ce qui se passe pendant le fonctionnement du programme[*][**].
Du coup, si tu décides de lire des octets depuis l'entrée standard (cin) dans une chaîne, ta variable est une chaîne, point final. Tu peux éventuellement décider d'analyser cette chaîne pour savoir si elle contient uniquement des chiffres, voire obtenir une variable de type "entier" contenant la valeur associée à cette chaîne de ton point de vue.
[*] Il y a quelques subtilités, par exemple la différence entre type statique et type dynamique, mais tu verras ça dans... un bon bout de temps...
[**] Une conséquence est qu'on peut surcharger les fonctions et donc les opérateurs. En d'autres termes, le symbole "+" peut avoir des sens très différents suivant le type des variables qui se trouvent autour :
int entier1= 1; int entier2= 2; std::string chaine1= "1"; std::string chaine2= "2";
chaine1 + chaine2 est un std::string qui vaut "12" entier1 + entier2 est un int qui vaut 3
Merci beaucoup pour toutes ces explications !!!
En fait, tu as bien dit ce que je voudrais faire : analyser une chaîne pour voir qi elle ne contient que des chiffres ou non ... Et ensuite, faire une action s'il n'y a pas que des chiffres, une autre s'il n'y a que des chiffres ...
Encore merci !!
@+
J'aimerai faire une action en fonction du type de la variable enregistrée
avec un cin.
Dans les langages de script comme PHP, les variables n'ont pas
vraiment de type bien défini, une variable déclarée par
$machin= "42";
peut être considérée comme un nombre à un endroit du programme, et
comme une chaîne de caractères à un autre endroit. Du coup, on a
besoin de deux opérateurs "additifs" : + (addition de nombres) et .
(concaténation de chaînes)
En C++, au contraire, on a un typage très fort des variables. Une
variable de type "entier signé" n'est pas une variable de type "chaîne
de caractères" ni une variable de type "entier non signé".
En particulier, le type d'une variable ne dépend pas de ce qui se
passe pendant le fonctionnement du programme[*][**].
Du coup, si tu décides de lire des octets depuis l'entrée standard
(cin) dans une chaîne, ta variable est une chaîne, point final. Tu
peux éventuellement décider d'analyser cette chaîne pour savoir si
elle contient uniquement des chiffres, voire obtenir une variable de
type "entier" contenant la valeur associée à cette chaîne de ton point
de vue.
[*] Il y a quelques subtilités, par exemple la différence entre type
statique et type dynamique, mais tu verras ça dans... un bon bout de
temps...
[**] Une conséquence est qu'on peut surcharger les fonctions et donc
les opérateurs. En d'autres termes, le symbole "+" peut avoir des sens
très différents suivant le type des variables qui se trouvent autour :
int entier1= 1;
int entier2= 2;
std::string chaine1= "1";
std::string chaine2= "2";
chaine1 + chaine2 est un std::string qui vaut "12"
entier1 + entier2 est un int qui vaut 3
Merci beaucoup pour toutes ces explications !!!
En fait, tu as bien dit ce que je voudrais faire : analyser une chaîne pour
voir qi elle ne contient que des chiffres ou non ... Et ensuite, faire une
action s'il n'y a pas que des chiffres, une autre s'il n'y a que des
chiffres ...
J'aimerai faire une action en fonction du type de la variable enregistrée avec un cin.
Dans les langages de script comme PHP, les variables n'ont pas vraiment de type bien défini, une variable déclarée par $machin= "42"; peut être considérée comme un nombre à un endroit du programme, et comme une chaîne de caractères à un autre endroit. Du coup, on a besoin de deux opérateurs "additifs" : + (addition de nombres) et . (concaténation de chaînes)
En C++, au contraire, on a un typage très fort des variables. Une variable de type "entier signé" n'est pas une variable de type "chaîne de caractères" ni une variable de type "entier non signé". En particulier, le type d'une variable ne dépend pas de ce qui se passe pendant le fonctionnement du programme[*][**].
Du coup, si tu décides de lire des octets depuis l'entrée standard (cin) dans une chaîne, ta variable est une chaîne, point final. Tu peux éventuellement décider d'analyser cette chaîne pour savoir si elle contient uniquement des chiffres, voire obtenir une variable de type "entier" contenant la valeur associée à cette chaîne de ton point de vue.
[*] Il y a quelques subtilités, par exemple la différence entre type statique et type dynamique, mais tu verras ça dans... un bon bout de temps...
[**] Une conséquence est qu'on peut surcharger les fonctions et donc les opérateurs. En d'autres termes, le symbole "+" peut avoir des sens très différents suivant le type des variables qui se trouvent autour :
int entier1= 1; int entier2= 2; std::string chaine1= "1"; std::string chaine2= "2";
chaine1 + chaine2 est un std::string qui vaut "12" entier1 + entier2 est un int qui vaut 3
Merci beaucoup pour toutes ces explications !!!
En fait, tu as bien dit ce que je voudrais faire : analyser une chaîne pour voir qi elle ne contient que des chiffres ou non ... Et ensuite, faire une action s'il n'y a pas que des chiffres, une autre s'il n'y a que des chiffres ...
Encore merci !!
@+
Fabien LE LEZ
On Mon, 21 Mar 2005 22:05:36 +0100, "Rudy" :
On commence à peine les sous-progs
Ben des programmes qui peuvent être utilisés dans d'autres pour effectuer certaines opérations, par exemple.
J'avais un doute à cause de l'abréviation, mais tu confirmes mon étonnement. C'est bien la première fois que j'entends ce terme dans un contexte C++. En C++ il n'y a que des fonctions. Et même si la fonction main() a des caractéristiques spéciales[*], aucune fonction ne s'appelle "sous-quelque chose".
[*] Les bizarreries de main() : - Elle est obligatoire, et automatiquement appelée par le système une fois que les variables statiques sont initialisées - On ne peut pas l'appeler depuis le programme - Elle a deux prototypes différents, interchangeables et qui s'excluent mutuellement - Son type de retour est "int", mais retourner une valeur est facultatif
Je ne veux pas être méchant,
méprisant envers ton lecteur, tout de même :-(
mais tout le monde connaît "caracs" ! C'est pas non plus une abréviation que j'aie inventé ...
Ça pourrait l'être. Mais effectivement, ce mot a déjà été utilisé 6 fois ici (d'après Google), la première étant le 25/12/1997.
-- ;-)
On Mon, 21 Mar 2005 22:05:36 +0100, "Rudy" <rudy.vogel@free.fr>:
On commence à peine les sous-progs
Ben des programmes qui peuvent être utilisés dans d'autres pour
effectuer certaines opérations, par exemple.
J'avais un doute à cause de l'abréviation, mais tu confirmes mon
étonnement. C'est bien la première fois que j'entends ce terme dans un
contexte C++.
En C++ il n'y a que des fonctions. Et même si la fonction main() a des
caractéristiques spéciales[*], aucune fonction ne s'appelle
"sous-quelque chose".
[*] Les bizarreries de main() :
- Elle est obligatoire, et automatiquement appelée par le système une
fois que les variables statiques sont initialisées
- On ne peut pas l'appeler depuis le programme
- Elle a deux prototypes différents, interchangeables et qui
s'excluent mutuellement
- Son type de retour est "int", mais retourner une valeur est
facultatif
Je ne veux pas être méchant,
méprisant envers ton lecteur, tout de même :-(
mais tout le monde connaît "caracs" !
C'est pas non plus une abréviation que j'aie inventé ...
Ça pourrait l'être.
Mais effectivement, ce mot a déjà été utilisé 6 fois ici (d'après
Google), la première étant le 25/12/1997.
Ben des programmes qui peuvent être utilisés dans d'autres pour effectuer certaines opérations, par exemple.
J'avais un doute à cause de l'abréviation, mais tu confirmes mon étonnement. C'est bien la première fois que j'entends ce terme dans un contexte C++. En C++ il n'y a que des fonctions. Et même si la fonction main() a des caractéristiques spéciales[*], aucune fonction ne s'appelle "sous-quelque chose".
[*] Les bizarreries de main() : - Elle est obligatoire, et automatiquement appelée par le système une fois que les variables statiques sont initialisées - On ne peut pas l'appeler depuis le programme - Elle a deux prototypes différents, interchangeables et qui s'excluent mutuellement - Son type de retour est "int", mais retourner une valeur est facultatif
Je ne veux pas être méchant,
méprisant envers ton lecteur, tout de même :-(
mais tout le monde connaît "caracs" ! C'est pas non plus une abréviation que j'aie inventé ...
Ça pourrait l'être. Mais effectivement, ce mot a déjà été utilisé 6 fois ici (d'après Google), la première étant le 25/12/1997.
-- ;-)
Fabien LE LEZ
N'hésite pas à couper très largement dans les citations. Mieux vaut ne pas mettre du tout de citation que trop en mettre.
-- ;-)
N'hésite pas à couper très largement dans les citations. Mieux vaut ne
pas mettre du tout de citation que trop en mettre.
N'hésite pas à couper très largement dans les citations. Mieux vaut ne pas mettre du tout de citation que trop en mettre.
-- ;-)
Rudy
J'avais un doute à cause de l'abréviation, mais tu confirmes mon étonnement. C'est bien la première fois que j'entends ce terme dans un contexte C++. En C++ il n'y a que des fonctions. Et même si la fonction main() a des caractéristiques spéciales[*], aucune fonction ne s'appelle "sous-quelque chose".
Ah ouais ?!?!?! La prof nous a dit qu'il existait des fonctions ET des procédures !!!
Alors comme ca il n'y a pas de procédures ??
SI c'est vrai, je lui en parlerai pour voir ... ca peut me rajouter des points au partiel ; MDRRRRRRRRRRRRR !! ;-)
@+
J'avais un doute à cause de l'abréviation, mais tu confirmes mon
étonnement. C'est bien la première fois que j'entends ce terme dans un
contexte C++.
En C++ il n'y a que des fonctions. Et même si la fonction main() a des
caractéristiques spéciales[*], aucune fonction ne s'appelle
"sous-quelque chose".
Ah ouais ?!?!?! La prof nous a dit qu'il existait des fonctions ET des
procédures !!!
Alors comme ca il n'y a pas de procédures ??
SI c'est vrai, je lui en parlerai pour voir ... ca peut me rajouter des
points au partiel ; MDRRRRRRRRRRRRR !! ;-)
J'avais un doute à cause de l'abréviation, mais tu confirmes mon étonnement. C'est bien la première fois que j'entends ce terme dans un contexte C++. En C++ il n'y a que des fonctions. Et même si la fonction main() a des caractéristiques spéciales[*], aucune fonction ne s'appelle "sous-quelque chose".
Ah ouais ?!?!?! La prof nous a dit qu'il existait des fonctions ET des procédures !!!
Alors comme ca il n'y a pas de procédures ??
SI c'est vrai, je lui en parlerai pour voir ... ca peut me rajouter des points au partiel ; MDRRRRRRRRRRRRR !! ;-)
@+
Rudy
N'hésite pas à couper très largement dans les citations. Mieux vaut ne pas mettre du tout de citation que trop en mettre.
Oui, j'ai hésité, mais je penses que certains m'auraient reproché de l'avoir trop coupée ;-) ;-) !
@+
N'hésite pas à couper très largement dans les citations. Mieux vaut ne
pas mettre du tout de citation que trop en mettre.
Oui, j'ai hésité, mais je penses que certains m'auraient reproché de l'avoir
trop coupée ;-) ;-) !
N'hésite pas à couper très largement dans les citations. Mieux vaut ne pas mettre du tout de citation que trop en mettre.
Oui, j'ai hésité, mais je penses que certains m'auraient reproché de l'avoir trop coupée ;-) ;-) !
@+
Pierre Maurette
[...]
Alors comme ca il n'y a pas de procédures ??
SI c'est vrai, je lui en parlerai pour voir ... ca peut me rajouter des points au partiel ; MDRRRRRRRRRRRRR !! ;-) Si tu rentres dans les polémiques fr.comp.lang.c++ vs enseignement (et
surtout si tu en fais profiter ton prof), tu vas l'énerver, t'énerver, et certainement pas gagner de points au partiel ;-). Il n'y a effectivement que des fonctions en C comme en C++. Mais il n'y a pas mort d'homme à décréter qu'une fonction renvoyant void correspond à la *notion* de procédure. (Evite également de parler de méthode) -- Pierre
[...]
Alors comme ca il n'y a pas de procédures ??
SI c'est vrai, je lui en parlerai pour voir ... ca peut me rajouter des
points au partiel ; MDRRRRRRRRRRRRR !! ;-)
Si tu rentres dans les polémiques fr.comp.lang.c++ vs enseignement (et
surtout si tu en fais profiter ton prof), tu vas l'énerver, t'énerver,
et certainement pas gagner de points au partiel ;-).
Il n'y a effectivement que des fonctions en C comme en C++. Mais il n'y
a pas mort d'homme à décréter qu'une fonction renvoyant void correspond
à la *notion* de procédure.
(Evite également de parler de méthode)
--
Pierre
SI c'est vrai, je lui en parlerai pour voir ... ca peut me rajouter des points au partiel ; MDRRRRRRRRRRRRR !! ;-) Si tu rentres dans les polémiques fr.comp.lang.c++ vs enseignement (et
surtout si tu en fais profiter ton prof), tu vas l'énerver, t'énerver, et certainement pas gagner de points au partiel ;-). Il n'y a effectivement que des fonctions en C comme en C++. Mais il n'y a pas mort d'homme à décréter qu'une fonction renvoyant void correspond à la *notion* de procédure. (Evite également de parler de méthode) -- Pierre
Fabien LE LEZ
On Mon, 21 Mar 2005 22:55:58 +0100, "Rudy" :
Ah ouais ?!?!?! La prof nous a dit qu'il existait des fonctions ET des procédures !!!
Remarque bien que ton message est le premier du thread qui parle de procédure. Je n'ai moi-même rien dit sur ce mot.
-- ;-)
On Mon, 21 Mar 2005 22:55:58 +0100, "Rudy" <rudy.vogel@free.fr>:
Ah ouais ?!?!?! La prof nous a dit qu'il existait des fonctions ET des
procédures !!!
Remarque bien que ton message est le premier du thread qui parle de
procédure. Je n'ai moi-même rien dit sur ce mot.
Ah ouais ?!?!?! La prof nous a dit qu'il existait des fonctions ET des procédures !!!
Remarque bien que ton message est le premier du thread qui parle de procédure. Je n'ai moi-même rien dit sur ce mot.
-- ;-)
Fabien LE LEZ
On Mon, 21 Mar 2005 23:06:30 +0100, Pierre Maurette :
Si tu rentres dans les polémiques fr.comp.lang.c++ vs enseignement (et surtout si tu en fais profiter ton prof), tu vas l'énerver, t'énerver, et certainement pas gagner de points au partiel ;-).
Yep. Le partiel porte sur le cours de la prof en question, pas sur le C++ en général. Par conséquent, il faut employer les mêmes termes et méthodes qu'elle pendant le partiel, quitte à parler ici de ce qui peut apparaître comme un sujet totalement différent.
Il n'y a effectivement que des fonctions en C comme en C++. Mais il n'y a pas mort d'homme à décréter qu'une fonction renvoyant void correspond à la *notion* de procédure.
Mais de là à parler de sous-programmes... Je n'avais pas entendu le terme depuis le Basic.
Quant au terme "procédure", il ne me fait pas trop tiquer, mais je n'aurais pas eu l'idée de l'employer.
(Evite également de parler de méthode)
Sauf quand on parle de méthodes de programmation...
-- ;-)
On Mon, 21 Mar 2005 23:06:30 +0100, Pierre Maurette
<maurettepierre@wanadoo.fr>:
Si tu rentres dans les polémiques fr.comp.lang.c++ vs enseignement (et
surtout si tu en fais profiter ton prof), tu vas l'énerver, t'énerver,
et certainement pas gagner de points au partiel ;-).
Yep. Le partiel porte sur le cours de la prof en question, pas sur le
C++ en général. Par conséquent, il faut employer les mêmes termes et
méthodes qu'elle pendant le partiel, quitte à parler ici de ce qui
peut apparaître comme un sujet totalement différent.
Il n'y a effectivement que des fonctions en C comme en C++. Mais il n'y
a pas mort d'homme à décréter qu'une fonction renvoyant void correspond
à la *notion* de procédure.
Mais de là à parler de sous-programmes...
Je n'avais pas entendu le terme depuis le Basic.
Quant au terme "procédure", il ne me fait pas trop tiquer, mais je
n'aurais pas eu l'idée de l'employer.
(Evite également de parler de méthode)
Sauf quand on parle de méthodes de programmation...
On Mon, 21 Mar 2005 23:06:30 +0100, Pierre Maurette :
Si tu rentres dans les polémiques fr.comp.lang.c++ vs enseignement (et surtout si tu en fais profiter ton prof), tu vas l'énerver, t'énerver, et certainement pas gagner de points au partiel ;-).
Yep. Le partiel porte sur le cours de la prof en question, pas sur le C++ en général. Par conséquent, il faut employer les mêmes termes et méthodes qu'elle pendant le partiel, quitte à parler ici de ce qui peut apparaître comme un sujet totalement différent.
Il n'y a effectivement que des fonctions en C comme en C++. Mais il n'y a pas mort d'homme à décréter qu'une fonction renvoyant void correspond à la *notion* de procédure.
Mais de là à parler de sous-programmes... Je n'avais pas entendu le terme depuis le Basic.
Quant au terme "procédure", il ne me fait pas trop tiquer, mais je n'aurais pas eu l'idée de l'employer.
(Evite également de parler de méthode)
Sauf quand on parle de méthodes de programmation...
-- ;-)
Fabien LE LEZ
On Mon, 21 Mar 2005 22:57:47 +0100, "Rudy" :
[citations]
Oui, j'ai hésité, mais je penses que certains m'auraient reproché de l'avoir trop coupée
Je pense que sur Usenet, personne ne te reprochera d'avoir trop coupé une citation. Le champ "References:" n'est pas fait pour les chiens...
-- ;-)
On Mon, 21 Mar 2005 22:57:47 +0100, "Rudy" <rudy.vogel@free.fr>:
[citations]
Oui, j'ai hésité, mais je penses que certains m'auraient reproché de l'avoir
trop coupée
Je pense que sur Usenet, personne ne te reprochera d'avoir trop coupé
une citation. Le champ "References:" n'est pas fait pour les chiens...