J'ai trouvé un problème lors de l'obtention de la valeur hexadécimale du fichier yaml. Il n'a pas pu obtenir la valeur hexadécimale 0x80000000 et plus. Voici un exemple de programme C++.valeur hexadécimale scalaire incorrecte 0x8000000 et plus
// ymlparser.cpp
#include <iostream>
#include <fstream>
#include "yaml-cpp/yaml.h"
int main(void)
{
try {
std::ifstream fin("hex.yaml");
YAML::Parser parser(fin);
YAML::Node doc;
parser.GetNextDocument(doc);
int num1;
doc["hex1"] >> num1;
printf("num1 = 0x%x\n", num1);
int num2;
doc["hex2"] >> num2;
printf("num2 = 0x%x\n", num2);
return 0;
} catch(YAML::ParserException& e) {
std::cout << e.what() << "\n";
}
}
hex.yaml
hex1: 0x7FFFFFFF
hex2: 0x80000000
message d'erreur est ici.
$ ./ymlparser
num1 = 0x7fffffff
terminate called after throwing an instance of 'YAML::InvalidScalar'
what(): yaml-cpp: error at line 2, column 7: invalid scalar
Aborted
Environnement
yaml-cpp: obtenir de svn, ou March.22.2010 v0.2.5
OS: Ubuntu 9.10 i386
Je dois obtenir ensorceler la valeur sur yaml- cpp maintenant, mais je n'en ai aucune idée. S'il vous plaît dites-moi comment l'obtenir d'une autre manière.
Merci,
Anzurio, Merci pour votre aide. C'est correct! Je pourrais obtenir 0x80000000. –
@kioto, la meilleure façon de dire ici est de cliquer sur la coche pour accepter la réponse. :-) –