2010-04-14 3 views
1

Voici un jeu amusant que j'ai essayé de comprendre. J'ai le programme suivant:L'analyse de chaîne pour doubler échoue en C++

#include <iostream> 
#include <string> 
#include <sstream> 

using namespace std; 

int main(int argc, char *argv[]) 
{ 
    string s("5"); 
    istringstream stream(s); 

    double theValue; 
    stream >> theValue; 

    cout << theValue << endl; 
    cout << stream.fail(); 
} 

La sortie est:

0 
1 

Je ne comprends pas pourquoi cela est un échec. Quelqu'un pourrait-il me dire ce que je fais de mal?

Merci,

helixed

EDIT:

Ok, désolé de transformer cela en un double post, mais cela ressemble à un problème spécifique à Xcode. Si je compile cela en g ++, le code fonctionne sans problème. Est-ce que quelqu'un a une idée de ce qui se passe dans Xcode, et comment je pourrais le réparer?

Répondre

2

Peut-être est le problème que vous rencontrez: stringstream question

Voir la accepted answer et la link therein. Un exemple dans le lien de discussion Apple ressemble beaucoup à ce que vous vivez.

+0

Donc, c'était le problème. Il a fixé la sortie pour les deux de mes messages. C'est incroyable qu'Apple laisse passer un bug comme celui-ci. Merci pour l'aide. – LandonSchropp

3

Etes-vous sûr que c'est exactement ce que vous construisez? Je reçois 5 et 0 comme prévu

+0

Ok, donc cela fonctionne très bien en g ++. J'ai édité mon post ci-dessus. Merci pour la réponse rapide. – LandonSchropp