2017-01-08 11 views
0

データを原子座標を格納する特定のフォーマットであるpdb形式で印刷したいので、いくつかの標準分子視覚化ソフトウェアで読み取ることができます。浮動小数点数をC++と同様の方法で印刷する

現在、私は、通常のC++の周りに仕事を使用して、私のSTDを組み合わせています::このような目的のフォーマットされた出力を得るためのprintfとCOUT、global_idは整数

std::cout << std::setw(6) << "ATOM" << std::setw(5) << "0" << " " 
      << std::setw(4) << "C" << std::setw(12) << global_id 
      << " "; 
printf("%8.3f %8.3f %8.3f %6.2f %6.2f \n", pos[0], pos[1], pos[2], tt, ss); 

を。

このprintfを削除し、小数点の前後の指定精度でstd :: coutを使用するだけで、ステートメント全体をどのように書くことができますか?

ご協力いただきますようお願い申し上げます。

+1

私はあなたが使用する書式文字列にsecial何も見えないので、あなたがそれを行うことができますすべてが 'fixed'、' setprecision'、 'setw'です。デフォルトでは、 'cout'は' stdout'と同期しているので動作しますが、同期は無駄な非効率性を導入する可能性があります。それは一般化しない。私は単に 'printf'をBoostの出力書式に置き換えるか、' sprintf'を適切なバッファに置き換えます。これをカプセル化することができます。それはあなたが求めているものではありませんが(簡単な答えがあります)、それは私がやることです。 –

+0

https://theboostcpplibraries.com/boost.formatをご覧ください –

答えて

関連する問題