2010-04-30 2 views
7

Ich möchte zwei Optionen für das Programm arbeiten müssen, die Startadresse und die Endadresse, so dass die Programmoptionen sind wie folgt:Wie verwende ich boost options_description mit hexadezimaler Eingabe?

--start_address 0xc0000000 --end_address 0xffffffff 

Ist es möglich, options_description zu nehmen Eingang solche hex? Muss ich die Eingabe als Zeichenfolge betrachten und sie in Hexadezimalwerte umwandeln? Ich habe dies im Moment:

po::options_description desc("Allowed options"); 

    desc.add_options() 
    ("help,h", "display this help message") 
    ("path,p", po::value<std::string>(), "Executable file path") 
    ("start_address,s", po::value<std::string>(), "Start address") 
    ("end_address,e", po::value<std::string>(), "End address") 
    ; 

Kann boost::lexical_cast tun, eine solche Umwandlung?

Antwort

4

ok. gerade entdeckte ich options_description können die Optionen aufzurufen und dann die Optionen analysieren std :: string mit auf eine Hex-Zahl zu konvertieren, wie

folgt
boost::uint32_t start_address; 
    std::stringstream interpreter; 

    interpreter << std::hex << vm["start_address"].as<std::string>(); 

    interpreter >> start_address; 
+2

... aber wie geht man mit der Ausnahme, was geschieht, wenn Sie versuchen, um das Standard-Parsing zu ermöglichen? – aardvarkk

Verwandte Themen