Le problème est que si j'entre seulement le premiere lettre ou chiffre il
accepte alors que celles qui suivent sont fausses. Comment je peux faire
pour que le programme teste un à un les caratères?
http://msdn2.microsoft.com/en-us/library/ms235367.aspx (qui me laissa penser que cette fonction était POSIX)
"This POSIX function is deprecated beginning in Visual C++ 2005."
C'est une erreur factuelle (flushall n'a jamais fait partie de POSIX).
Ni du Unix pré-Posix.
"Use the ISO C++ conformant _flushall instead."
Ce n'est pas à interpréter comme "_flushall est défini dans le C++ ISO", mais comme "nous définissons _flushall et l'utilisation de ce nom est une extention conforme de ISO C++".
N'empêche que la formulation de la phrase prête à confusion. Quand on connaît la norme, et l'histoire des rapports de Microsoft avec la norme, c'est clair que ton interprètation est la bonne. Mais si je voyais cette phrase, telle qu'elle est, et sans tenir compte de ce que je connais de la norme par ailleurs, je l'interprêterais dans le sens qu'a fait Sylvain.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Jean-Marc Bourguet wrote:
Sylvain <noSpam@mail.net> writes:
[...]
http://msdn2.microsoft.com/en-us/library/ms235367.aspx
(qui me laissa penser que cette fonction était POSIX)
"This POSIX function is deprecated beginning in Visual C++
2005."
C'est une erreur factuelle (flushall n'a jamais fait partie de
POSIX).
Ni du Unix pré-Posix.
"Use the ISO C++ conformant _flushall instead."
Ce n'est pas à interpréter comme "_flushall est défini dans le
C++ ISO", mais comme "nous définissons _flushall et
l'utilisation de ce nom est une extention conforme de ISO
C++".
N'empêche que la formulation de la phrase prête à confusion.
Quand on connaît la norme, et l'histoire des rapports de
Microsoft avec la norme, c'est clair que ton interprètation est
la bonne. Mais si je voyais cette phrase, telle qu'elle est, et
sans tenir compte de ce que je connais de la norme par ailleurs,
je l'interprêterais dans le sens qu'a fait Sylvain.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
http://msdn2.microsoft.com/en-us/library/ms235367.aspx (qui me laissa penser que cette fonction était POSIX)
"This POSIX function is deprecated beginning in Visual C++ 2005."
C'est une erreur factuelle (flushall n'a jamais fait partie de POSIX).
Ni du Unix pré-Posix.
"Use the ISO C++ conformant _flushall instead."
Ce n'est pas à interpréter comme "_flushall est défini dans le C++ ISO", mais comme "nous définissons _flushall et l'utilisation de ce nom est une extention conforme de ISO C++".
N'empêche que la formulation de la phrase prête à confusion. Quand on connaît la norme, et l'histoire des rapports de Microsoft avec la norme, c'est clair que ton interprètation est la bonne. Mais si je voyais cette phrase, telle qu'elle est, et sans tenir compte de ce que je connais de la norme par ailleurs, je l'interprêterais dans le sens qu'a fait Sylvain.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
kanze
Sylvain wrote:
kanze wrote on 26/06/2006 11:18:
A priori, quand on parle de « flush » ici (un group C++), c'est bien de std::ostream::flush qu'on parle, parce que c'est la seule fonction flush en C++.
ah, quand on "parle", c'est obligeatoirement pour réciter ISO 9899 ?!?
Tu parlais d'une fonction « flush ». C'est la seule fonction flush que je connais en C++.
désolé mais moi je flushe (tu flushes, il flushe) en tant que traitement, s'il faut un accès DMA, une int. ou une API propriétaire supportée par 100% des compilos que j'utilise cela me va très bien.
Oui, mais quand on parle du C++, on suppose des flux, faute d'autres précisions. Donc, ostream::flush(), ou à la rigueur, fflush(). Le C++ ne connaît pas des accès DMA, etc.
Et ça n'a pas de sens d'en parler ici si ça n'est pas au moins un pseudo-standard. Tout le monde n'utilise pas les mêmes compilateurs que toi.
tu trouves des fonctions qui ne sont pas dans ma copie de la norme
oui et alors, c'est interdit par la même norme ?
C'est interdit si elle est déclarée dans un en-tête standard.
Et si la fonction ne fait pas partie de C++, ou au moins une bibliothèque répandue et portable, genre Boost ou ACE, comment veux-tu qu'on en discute ici ?
je te conseille de trouver une source plus fiable. Parce que les fonctions « standard » dont tu parles n'existent ni dans la norme, ni dans les compilateurs auxquels j'ai accès.
- je n'ai jamais dit « standard » - je n'utilise pas /tes/ compilos (ma Sparc, avec cc et gcc, est sous les étagères depuis 10 ans - si quelqu'un veux un GDM-1962B il est nickel).
Mais je ne démande pas à ce que tu te serves de mes compilateurs. J'essaies de restreindre mes suggestions à des fonctions disponibles à peu près partout. De préférence celles de la norme, qu'on est garanti de trouver partout, mais sinon, celles d'une bibliothèque portable. Et dans les cas où ce n'est pas possible, parce qu'aucune solution portable n'existe, je précise bien les dépendances platforme : qu'on fait comme ça sous Unix, mais que sous Windows c'est...
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Sylvain wrote:
kanze wrote on 26/06/2006 11:18:
A priori, quand on parle de « flush » ici (un group C++),
c'est bien de std::ostream::flush qu'on parle, parce que
c'est la seule fonction flush en C++.
ah, quand on "parle", c'est obligeatoirement pour réciter ISO
9899 ?!?
Tu parlais d'une fonction « flush ». C'est la seule fonction
flush que je connais en C++.
désolé mais moi je flushe (tu flushes, il flushe) en tant que
traitement, s'il faut un accès DMA, une int. ou une API
propriétaire supportée par 100% des compilos que j'utilise
cela me va très bien.
Oui, mais quand on parle du C++, on suppose des flux, faute
d'autres précisions. Donc, ostream::flush(), ou à la rigueur,
fflush(). Le C++ ne connaît pas des accès DMA, etc.
Et ça n'a pas de sens d'en parler ici si ça n'est pas au moins
un pseudo-standard. Tout le monde n'utilise pas les mêmes
compilateurs que toi.
tu trouves des fonctions qui ne sont pas dans ma copie de la
norme
oui et alors, c'est interdit par la même norme ?
C'est interdit si elle est déclarée dans un en-tête standard.
Et si la fonction ne fait pas partie de C++, ou au moins une
bibliothèque répandue et portable, genre Boost ou ACE, comment
veux-tu qu'on en discute ici ?
je te conseille de trouver une source plus fiable. Parce que
les fonctions « standard » dont tu parles n'existent ni dans
la norme, ni dans les compilateurs auxquels j'ai accès.
- je n'ai jamais dit « standard »
- je n'utilise pas /tes/ compilos (ma Sparc, avec cc et gcc,
est sous les étagères depuis 10 ans - si quelqu'un veux un
GDM-1962B il est nickel).
Mais je ne démande pas à ce que tu te serves de mes
compilateurs. J'essaies de restreindre mes suggestions à des
fonctions disponibles à peu près partout. De préférence celles
de la norme, qu'on est garanti de trouver partout, mais sinon,
celles d'une bibliothèque portable. Et dans les cas où ce n'est
pas possible, parce qu'aucune solution portable n'existe, je
précise bien les dépendances platforme : qu'on fait comme ça
sous Unix, mais que sous Windows c'est...
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
A priori, quand on parle de « flush » ici (un group C++), c'est bien de std::ostream::flush qu'on parle, parce que c'est la seule fonction flush en C++.
ah, quand on "parle", c'est obligeatoirement pour réciter ISO 9899 ?!?
Tu parlais d'une fonction « flush ». C'est la seule fonction flush que je connais en C++.
désolé mais moi je flushe (tu flushes, il flushe) en tant que traitement, s'il faut un accès DMA, une int. ou une API propriétaire supportée par 100% des compilos que j'utilise cela me va très bien.
Oui, mais quand on parle du C++, on suppose des flux, faute d'autres précisions. Donc, ostream::flush(), ou à la rigueur, fflush(). Le C++ ne connaît pas des accès DMA, etc.
Et ça n'a pas de sens d'en parler ici si ça n'est pas au moins un pseudo-standard. Tout le monde n'utilise pas les mêmes compilateurs que toi.
tu trouves des fonctions qui ne sont pas dans ma copie de la norme
oui et alors, c'est interdit par la même norme ?
C'est interdit si elle est déclarée dans un en-tête standard.
Et si la fonction ne fait pas partie de C++, ou au moins une bibliothèque répandue et portable, genre Boost ou ACE, comment veux-tu qu'on en discute ici ?
je te conseille de trouver une source plus fiable. Parce que les fonctions « standard » dont tu parles n'existent ni dans la norme, ni dans les compilateurs auxquels j'ai accès.
- je n'ai jamais dit « standard » - je n'utilise pas /tes/ compilos (ma Sparc, avec cc et gcc, est sous les étagères depuis 10 ans - si quelqu'un veux un GDM-1962B il est nickel).
Mais je ne démande pas à ce que tu te serves de mes compilateurs. J'essaies de restreindre mes suggestions à des fonctions disponibles à peu près partout. De préférence celles de la norme, qu'on est garanti de trouver partout, mais sinon, celles d'une bibliothèque portable. Et dans les cas où ce n'est pas possible, parce qu'aucune solution portable n'existe, je précise bien les dépendances platforme : qu'on fait comme ça sous Unix, mais que sous Windows c'est...
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Arnaud Meurgues
Jean-Marc Bourguet wrote:
autres des extensions. D'après ce que j'ai compris, MS s'est mis récemment à déprécier (toutes?) ses extensions qui n'avaient pas de tels noms.
D'après ce que j'ai constaté, il a même déprécié ce qui n'était pas des extensions... C'est d'un pénible.
-- Arnaud
Jean-Marc Bourguet wrote:
autres des extensions. D'après ce que j'ai compris, MS
s'est mis récemment à déprécier (toutes?) ses extensions qui
n'avaient pas de tels noms.
D'après ce que j'ai constaté, il a même déprécié ce qui n'était pas des
extensions... C'est d'un pénible.
autres des extensions. D'après ce que j'ai compris, MS s'est mis récemment à déprécier (toutes?) ses extensions qui n'avaient pas de tels noms.
D'après ce que j'ai constaté, il a même déprécié ce qui n'était pas des extensions... C'est d'un pénible.
-- Arnaud
kanze
Sylvain wrote:
Loïc Joly wrote on 26/06/2006 22:39:
Et grand bien t'en fasse. J'utilise moi aussi en permanence des tas de fonctions qui ne font pas partie du langage. Par contre, j'ai une bonne vision que ce qui en fait partie ou non, afin d'adapter mon programme à d'éventuelles contraintes de portabilité, et dans un newsgroup, où l'on ne connait pas l'environnement des gens qui vont lire le message, il faut aussi prendre ses précautions.
j'exigerais et m'efforcerais à ce type de précautions s'il s'agissait d'encourager à l'usage d'une telle fonction.
le point partait de "je mets plutot un flush avant chaque nouvel input". Un développeur normal trouve spontanément 10 façons différentes de le faire;
Comment ? En tant que verbe anglais, « to flush » n'a de signification que sur un flux en sortie. Et sur les systèmes que je connais, les fonctions « flush » ou « fflush » ne s'appliquent que sur les flux de sortie. Je ne sais même pas ce que ça veut dire, mettre un flush sur un flux d'entrée ?
mes chers interlocuteurs ne trouve qu'à noter que "depuis quand que cela serait possible" et autre agressions.
Ce n'est pas une aggression ; c'est une simple constatation des faits. On ne peut pas mettre un « flush » sur un flux d'entrée. Ça n'est pas possible ; ça n'a même pas de sens, comme phrase.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Sylvain wrote:
Loïc Joly wrote on 26/06/2006 22:39:
Et grand bien t'en fasse. J'utilise moi aussi en permanence
des tas de fonctions qui ne font pas partie du langage. Par
contre, j'ai une bonne vision que ce qui en fait partie ou
non, afin d'adapter mon programme à d'éventuelles
contraintes de portabilité, et dans un newsgroup, où l'on ne
connait pas l'environnement des gens qui vont lire le
message, il faut aussi prendre ses précautions.
j'exigerais et m'efforcerais à ce type de précautions s'il
s'agissait d'encourager à l'usage d'une telle fonction.
le point partait de "je mets plutot un flush avant chaque
nouvel input". Un développeur normal trouve spontanément 10
façons différentes de le faire;
Comment ? En tant que verbe anglais, « to flush » n'a de
signification que sur un flux en sortie. Et sur les systèmes que
je connais, les fonctions « flush » ou « fflush » ne
s'appliquent que sur les flux de sortie. Je ne sais même pas ce
que ça veut dire, mettre un flush sur un flux d'entrée ?
mes chers interlocuteurs ne trouve qu'à noter que "depuis
quand que cela serait possible" et autre agressions.
Ce n'est pas une aggression ; c'est une simple constatation des
faits. On ne peut pas mettre un « flush » sur un flux
d'entrée. Ça n'est pas possible ; ça n'a même pas de sens,
comme phrase.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Et grand bien t'en fasse. J'utilise moi aussi en permanence des tas de fonctions qui ne font pas partie du langage. Par contre, j'ai une bonne vision que ce qui en fait partie ou non, afin d'adapter mon programme à d'éventuelles contraintes de portabilité, et dans un newsgroup, où l'on ne connait pas l'environnement des gens qui vont lire le message, il faut aussi prendre ses précautions.
j'exigerais et m'efforcerais à ce type de précautions s'il s'agissait d'encourager à l'usage d'une telle fonction.
le point partait de "je mets plutot un flush avant chaque nouvel input". Un développeur normal trouve spontanément 10 façons différentes de le faire;
Comment ? En tant que verbe anglais, « to flush » n'a de signification que sur un flux en sortie. Et sur les systèmes que je connais, les fonctions « flush » ou « fflush » ne s'appliquent que sur les flux de sortie. Je ne sais même pas ce que ça veut dire, mettre un flush sur un flux d'entrée ?
mes chers interlocuteurs ne trouve qu'à noter que "depuis quand que cela serait possible" et autre agressions.
Ce n'est pas une aggression ; c'est une simple constatation des faits. On ne peut pas mettre un « flush » sur un flux d'entrée. Ça n'est pas possible ; ça n'a même pas de sens, comme phrase.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Jean-Marc Bourguet
"kanze" writes:
"Use the ISO C++ conformant _flushall instead."
Ce n'est pas à interpréter comme "_flushall est défini dans le C++ ISO", mais comme "nous définissons _flushall et l'utilisation de ce nom est une extention conforme de ISO C++".
N'empêche que la formulation de la phrase prête à confusion.
Entierement d'accord (j'avais meme d'abord ecrit "deux phrases, deux erreurs factuelles" avant de voir qu'il y avait une interpretation plus favorable a MS), mais comme l'anglais n'est que ma 3ieme langue, je ne me sentais pas en droit de juger.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
"kanze" <kanze@gabi-soft.fr> writes:
"Use the ISO C++ conformant _flushall instead."
Ce n'est pas à interpréter comme "_flushall est défini dans le
C++ ISO", mais comme "nous définissons _flushall et
l'utilisation de ce nom est une extention conforme de ISO
C++".
N'empêche que la formulation de la phrase prête à confusion.
Entierement d'accord (j'avais meme d'abord ecrit "deux phrases, deux
erreurs factuelles" avant de voir qu'il y avait une interpretation
plus favorable a MS), mais comme l'anglais n'est que ma 3ieme langue,
je ne me sentais pas en droit de juger.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Ce n'est pas à interpréter comme "_flushall est défini dans le C++ ISO", mais comme "nous définissons _flushall et l'utilisation de ce nom est une extention conforme de ISO C++".
N'empêche que la formulation de la phrase prête à confusion.
Entierement d'accord (j'avais meme d'abord ecrit "deux phrases, deux erreurs factuelles" avant de voir qu'il y avait une interpretation plus favorable a MS), mais comme l'anglais n'est que ma 3ieme langue, je ne me sentais pas en droit de juger.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
kanze
Jean-Marc Bourguet wrote:
"kanze" writes:
"Use the ISO C++ conformant _flushall instead."
Ce n'est pas à interpréter comme "_flushall est défini dans le C++ ISO", mais comme "nous définissons _flushall et l'utilisation de ce nom est une extention conforme de ISO C++".
N'empêche que la formulation de la phrase prête à confusion.
Entierement d'accord (j'avais meme d'abord ecrit "deux phrases, deux erreurs factuelles" avant de voir qu'il y avait une interpretation plus favorable a MS), mais comme l'anglais n'est que ma 3ieme langue, je ne me sentais pas en droit de juger.
Comme toute langue naturelle, l'anglais n'est pas toujours aussi précis que voulu. Si on prend la signification la plus mot-à-mot, il n'y a pas de doute que l'existance de la fonction en question est conforme aux exigeances de la norme ISO, ce qui n'était pas le cas de la fonction qu'elle remplace. L'interprétation correcte n'est pas tiré par les cheveux, ou exagérée. Seulement, elle n'est pas la seule possible, et d'office, je crois qu'intuitivement, la plupart du monde s'entendrait l'interprétation incorrecte d'abord. Je ne saurais expliquer pourquoi, mais elle me semble « plus probable ».
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Jean-Marc Bourguet wrote:
"kanze" <kanze@gabi-soft.fr> writes:
"Use the ISO C++ conformant _flushall instead."
Ce n'est pas à interpréter comme "_flushall est défini
dans le C++ ISO", mais comme "nous définissons _flushall
et l'utilisation de ce nom est une extention conforme de
ISO C++".
N'empêche que la formulation de la phrase prête à confusion.
Entierement d'accord (j'avais meme d'abord ecrit "deux
phrases, deux erreurs factuelles" avant de voir qu'il y avait
une interpretation plus favorable a MS), mais comme l'anglais
n'est que ma 3ieme langue, je ne me sentais pas en droit de
juger.
Comme toute langue naturelle, l'anglais n'est pas toujours aussi
précis que voulu. Si on prend la signification la plus
mot-à-mot, il n'y a pas de doute que l'existance de la fonction
en question est conforme aux exigeances de la norme ISO, ce qui
n'était pas le cas de la fonction qu'elle remplace.
L'interprétation correcte n'est pas tiré par les cheveux, ou
exagérée. Seulement, elle n'est pas la seule possible, et
d'office, je crois qu'intuitivement, la plupart du monde
s'entendrait l'interprétation incorrecte d'abord. Je ne saurais
expliquer pourquoi, mais elle me semble « plus probable ».
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Ce n'est pas à interpréter comme "_flushall est défini dans le C++ ISO", mais comme "nous définissons _flushall et l'utilisation de ce nom est une extention conforme de ISO C++".
N'empêche que la formulation de la phrase prête à confusion.
Entierement d'accord (j'avais meme d'abord ecrit "deux phrases, deux erreurs factuelles" avant de voir qu'il y avait une interpretation plus favorable a MS), mais comme l'anglais n'est que ma 3ieme langue, je ne me sentais pas en droit de juger.
Comme toute langue naturelle, l'anglais n'est pas toujours aussi précis que voulu. Si on prend la signification la plus mot-à-mot, il n'y a pas de doute que l'existance de la fonction en question est conforme aux exigeances de la norme ISO, ce qui n'était pas le cas de la fonction qu'elle remplace. L'interprétation correcte n'est pas tiré par les cheveux, ou exagérée. Seulement, elle n'est pas la seule possible, et d'office, je crois qu'intuitivement, la plupart du monde s'entendrait l'interprétation incorrecte d'abord. Je ne saurais expliquer pourquoi, mais elle me semble « plus probable ».
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34