Bonsoir,
Luc Hermitte vous dîtes
Ne pourrait-on pas dire qu' il faut toujours tester le flux avant de le soumettre à un résultat ?Citation:
Ceci dit, il faut toujours tester le résultat d'une lecture sur un flux.
Cordialement.
Version imprimable
Bonsoir,
Luc Hermitte vous dîtes
Ne pourrait-on pas dire qu' il faut toujours tester le flux avant de le soumettre à un résultat ?Citation:
Ceci dit, il faut toujours tester le résultat d'une lecture sur un flux.
Cordialement.
Aussi. Mais ce n'est qu'un cas particulier de toutes les opérations qui peuvent modifier quelque chose même en cas d'échec.
La bonne méthode veut effectivement que l'on récupère un résultat intermédiaire ou incomplet dans un temporaire et que si toutes les étapes de l'opération à réaliser sont correctes, alors on peut valider les changements.
Bonsoir,
J' apprécie tous vos messages, malheuresement aprés vérification, je me suis aperçu, que vos "modérateurs" à la mord moi le noued, me privaient des retours d' information.
Il n'y a rien de "stratégique" ou peut être "tragique" dans les messages que j' envoie.
Honte à tous ces petits commisaires politique, qui nous gâchent la vie !
SVP Faîtes en sorte que je sois informé du retour des messages que j ' envoie.
J' aime bien le C++, mais pas de manière unilatérale...
Cordialement.
<HS>
Euh ... Les modérateurs n'ont rien à voir avec le fait que l'on soit prévenu ou non si des messages sont publiés.
Le site a visiblement eu un problème dans la nuit. Possiblement réglé vu que j'ai reçu plusieurs notifications dans la matiné de messages que j'avais déjà lus ou auxquels j'avais déjà répondu.
Cordialement.
</>
Bonjour,
Bizarre le comportement du site concernant les notifiications de réponses aux messages !
Codialement.
Bon, j'ai mis le tag [Resolu] à ce poste, laissez-le mourir en paix.
Bonjour,
Helvenir écrit
Je ne vois pas comment accéder à cette fonction ! Peut-être manque-t-il un argument pour spécifier le type T .Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 template< typename T > T StrToNum( const string& s ) { string tmp; // Un simple TRIM string::size_type idx = s.find_last_not_of( ' ' ); if ( idx != string::npos ) tmp = s.substr( 0, idx + 1 ); istringstream iss( tmp ); T v; if ( !(iss >> v ) || !iss.eof() ) throw runtime_error( "bad_cast" ); return v; }
Ceci dît votre méthode est trés judicieuse ( moins mauvaise que la mienne qui relève de la torture mentale ! )
Je l'ai corrigé (la votre) sur mon c++, et me suis aperçu que sous linux "runtime_error" ne faisait plus partie de <exception> mais de <stdexcept>.
Mais cela est un autre sujet !
Cordialement.
LH : J'aime bien ton verbe "imbuer" :D
DJ:
sauf erreur (j'ai pas de compilo sous la main)
Assiobal: Désolé d'avoir "polluer" ton poste. En espérant que tu aies trouvé la réponse à ta question parmis tous ces codes.Code:
1
2 double valeur = StrToNum< double >( "3.14159" );
Bonsoir,
Hylvenir
vous dîtes
Et bien assurez-vous de disposer du bon compilateur, pour vous apercevoir que votre code est bogué.Citation:
Je n' ai pas le compilateur sous la main
Selon votre code , il serait possible, de convertir une chaîne de caractères sans se soucier du type attendu...
Vous rêvez !
Cordialement.
Puisqu'il faut tout faire...
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #include <iostream> #include <sstream> using namespace std; template< typename T > T StrToNum( const string& s ) { istringstream iss( s ); T t; iss >> t; return t; } int main() { cout << StrToNum< double >( "3.141592" ) << endl; cout << StrToNum< int >( "123456" ) << endl; }
Hylvenir,
pas de problème pour la pollution. Juste que je vois mon innocent poste devenir un champs de bataille acharné.
Je ne critique pas, je trouve ça "marrant". :wink:
Bonsoir,
Hylvenir, J'ai enfin saisi le génie de votre StrToNum.
Malgré tout il me semble que StrToNum<int>(" - 25 " ) echoue.
Le code du forum ne permet pas de représenter fidèlement les messages envoyés.
Vous voyez - 25 là où j' ai ecris "espace espace - espace espace espace 25 espace " .
Ma version "torturée" accepte .
C'est vrai que cela devient "marrant" !
Cordialement.