2011-01-25 5 views
0

渡されるデータ型に文字列を読み込もうとする関数(TinyXMLのTiXmlElement::QueryValueAttribute(const std::string &name, T * outValue)を使用しています。私の場合、私はboolを渡しています。だから、0または1ではなく、trueまたはfalseになるようにboolalphaフラグを使用します。C++:boolalphaの使用

どうすればよいですか?

ありがとうございました。

答えて

2

TiXmlElement::QueryValueAttribute値を解析するためにstd::istringstreamを使用しています。したがって、boolの周りのラッパークラスを作成して、operator >>をオーバーロードして、常にboolalphaを抽出前に設定することができます。

0

文字列値を使用してistringstreamを構築し、そこから* T変数にストリームすることができます。 I/Oの側面を以下に示します。

#include <iostream>                
#include <iomanip>                
#include <sstream>                

int main()                  
{     
    // output example                
    std::cout << std::boolalpha << true << ' ' << false << '\n'; 

    // input example     
    std::istringstream iss("true false");          
    bool x = false, y = true;             
    iss >> x >> y;                
    std::cout << std::boolalpha << x << ' ' << y << '\n';      
}