Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation hexadécimal de
14... Quelqu'un peut-il me dire ce que je fais pas bien?
Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation hexadécimal de
14... Quelqu'un peut-il me dire ce que je fais pas bien?
Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation hexadécimal de
14... Quelqu'un peut-il me dire ce que je fais pas bien?
Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation
hexadécimal de 14... Quelqu'un peut-il me dire ce que je fais
pas bien?
Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation
hexadécimal de 14... Quelqu'un peut-il me dire ce que je fais
pas bien?
Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation
hexadécimal de 14... Quelqu'un peut-il me dire ce que je fais
pas bien?
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
On Apr 8, 5:16 pm, Guillaume GOURDIN wrote:Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation
hexadécimal de 14... Quelqu'un peut-il me dire ce que je fais
pas bien?
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
On Apr 8, 5:16 pm, Guillaume GOURDIN <tr...@hotmail.com> wrote:
Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation
hexadécimal de 14... Quelqu'un peut-il me dire ce que je fais
pas bien?
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
On Apr 8, 5:16 pm, Guillaume GOURDIN wrote:Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation
hexadécimal de 14... Quelqu'un peut-il me dire ce que je fais
pas bien?
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
On Apr 8, 5:16 pm, Guillaume GOURDIN wrote:Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation
hexadécimal de 14... Quelqu'un peut-il me dire ce que je fais
pas bien?
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
Je ne comprends pas le problème dans ce cas là:
- si il était déjà à la fin, il positionne failbit et le get suivant
retourne bien EOF. Donc, la stream ne contenait bien que l'entier
- si il n'était pas à la fin, après cela, si la stream est épuisée,
alors get() va de toutes façon positionner failbit.
On Apr 8, 5:16 pm, Guillaume GOURDIN <tr...@hotmail.com> wrote:
Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation
hexadécimal de 14... Quelqu'un peut-il me dire ce que je fais
pas bien?
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
Je ne comprends pas le problème dans ce cas là:
- si il était déjà à la fin, il positionne failbit et le get suivant
retourne bien EOF. Donc, la stream ne contenait bien que l'entier
- si il n'était pas à la fin, après cela, si la stream est épuisée,
alors get() va de toutes façon positionner failbit.
On Apr 8, 5:16 pm, Guillaume GOURDIN wrote:Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation
hexadécimal de 14... Quelqu'un peut-il me dire ce que je fais
pas bien?
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
Je ne comprends pas le problème dans ce cas là:
- si il était déjà à la fin, il positionne failbit et le get suivant
retourne bien EOF. Donc, la stream ne contenait bien que l'entier
- si il n'était pas à la fin, après cela, si la stream est épuisée,
alors get() va de toutes façon positionner failbit.
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
Le manipulateur ne peut pas positionner failbit, mais est-ce qu'il
peut positionner eofbit ?
Je dis ca parce que pour du code similaire a celui ci-dessus,
j'ai l'habitude de tester eof() plutot que le resultat de
get():
if ( iss >> std::hex >> tmp >> std::ws
&& iss.eof() ) {
// c'est bon
}
Ca marche au moins avec g++, mais pour les autres ?
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
Le manipulateur ne peut pas positionner failbit, mais est-ce qu'il
peut positionner eofbit ?
Je dis ca parce que pour du code similaire a celui ci-dessus,
j'ai l'habitude de tester eof() plutot que le resultat de
get():
if ( iss >> std::hex >> tmp >> std::ws
&& iss.eof() ) {
// c'est bon
}
Ca marche au moins avec g++, mais pour les autres ?
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
Le manipulateur ne peut pas positionner failbit, mais est-ce qu'il
peut positionner eofbit ?
Je dis ca parce que pour du code similaire a celui ci-dessus,
j'ai l'habitude de tester eof() plutot que le resultat de
get():
if ( iss >> std::hex >> tmp >> std::ws
&& iss.eof() ) {
// c'est bon
}
Ca marche au moins avec g++, mais pour les autres ?
On Apr 8, 5:16 pm, Guillaume GOURDIN wrote:Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation
hexadécimal de 14... Quelqu'un peut-il me dire ce que je fais
pas bien?
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
Je ne comprends pas le problème dans ce cas là:
- si il était déjà à la fin, il positionne failbit et le get suivant
retourne bien EOF. Donc, la stream ne contenait bien que l'entier
- si il n'était pas à la fin, après cela, si la stream est épuisée,
alors get() va de toutes façon positionner failbit.
On Apr 8, 5:16 pm, Guillaume GOURDIN <tr...@hotmail.com> wrote:
Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation
hexadécimal de 14... Quelqu'un peut-il me dire ce que je fais
pas bien?
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
Je ne comprends pas le problème dans ce cas là:
- si il était déjà à la fin, il positionne failbit et le get suivant
retourne bien EOF. Donc, la stream ne contenait bien que l'entier
- si il n'était pas à la fin, après cela, si la stream est épuisée,
alors get() va de toutes façon positionner failbit.
On Apr 8, 5:16 pm, Guillaume GOURDIN wrote:Bonjour à tous, j'ai un problème avec le code suivant :
#include <sstream>
#include <iostream>
#include <stdint.h>
using namespace std;
int main(int argc, char ** argv)
{
string s("endor ID Low Byte");
istringstream iss;
uint32_t tmp;
iss.str( s );
if ( !(iss >> hex >> tmp) )
{
return ( false );
}
cout << tmp << endl;
return ( true );
}
Pour ce code, "endor ID Low Byte" est une représentation
hexadécimal de 14... Quelqu'un peut-il me dire ce que je fais
pas bien?
Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
valeur 14. Si tu veux vérifer que c'est tout ce qu'il
contient :
if ( iss >> std::hex >> tmp >> std::ws
&& iss.get() == EOF ) {
// c'est bon
}
Attention, en revanche. J'ai déjà rencontré des manipulateur
std::ws qui positionnait failbit s'il était déjà à la fin (parce
qu'il construisait un istream::sentry avant de commencer à
lire), bien qu'un manipulateur ne doit jamais positionner
failbit.
Je ne comprends pas le problème dans ce cas là:
- si il était déjà à la fin, il positionne failbit et le get suivant
retourne bien EOF. Donc, la stream ne contenait bien que l'entier
- si il n'était pas à la fin, après cela, si la stream est épuisée,
alors get() va de toutes façon positionner failbit.
[ Une cinquantaine de lignes citées ]
J'espère que mon message originel est bien annulé.
Désolé pour le bruit,
le réveil est dur ce matin.
[ Une cinquantaine de lignes citées ]
J'espère que mon message originel est bien annulé.
Désolé pour le bruit,
le réveil est dur ce matin.
[ Une cinquantaine de lignes citées ]
J'espère que mon message originel est bien annulé.
Désolé pour le bruit,
le réveil est dur ce matin.