X-Git-Url: http://git.tdb.fi/?p=libs%2Fdatafile.git;a=blobdiff_plain;f=source%2Ftextwriter.cpp;h=921842279f133eabf555d57d97e609d563dacb72;hp=5212c9760488330de78807ab7e4eb97bc3727827;hb=9d97c6c5d3f125dd0ed23ccfa4bf0bb728a753fa;hpb=8e3fad222e174b7c659fd3d994d54314657ed989 diff --git a/source/textwriter.cpp b/source/textwriter.cpp index 5212c97..9218422 100644 --- a/source/textwriter.cpp +++ b/source/textwriter.cpp @@ -10,13 +10,14 @@ namespace Msp { namespace DataFile { TextWriter::TextWriter(Output &o): - WriterMode(o), - float_format("%#.7g") -{ } + WriterMode(o) +{ + float_format.showpoint().precision(7); +} void TextWriter::set_float_precision(unsigned fp) { - float_format = format("%%#.%dg", fp/4-1); + float_format.precision(fp/4-1); } void TextWriter::write(const Statement &st) @@ -29,7 +30,7 @@ void TextWriter::write_(const Statement &st, unsigned level) string indent(level, '\t'); out.write(format("%s%s", indent, st.keyword)); - for(ValueArray::const_iterator i = st.args.begin(); i!=st.args.end(); ++i) + for(vector::const_iterator i = st.args.begin(); i!=st.args.end(); ++i) { out.put(' '); if(i->get_signature()==StringType::signature) @@ -37,9 +38,9 @@ void TextWriter::write_(const Statement &st, unsigned level) else if(i->get_signature()==BoolType::signature) out.write(i->get() ? "true" : "false"); else if(i->get_signature()==IntType::signature) - out.write(lexical_cast(i->get())); + out.write(lexical_cast(i->get())); else if(i->get_signature()==FloatType::signature) - out.write(format(float_format, i->get())); + out.write(lexical_cast(i->get(), float_format)); else if(i->get_signature()==SymbolType::signature) { string name = i->get().name;