問題タブ [iomanip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
13255 参照

c++ - C++ cout 小数点位置合わせ

10 進数の値を揃えるのに苦労しています。正しい配置と setprecision/fixed の組み合わせであると確信していますが、機能していないようです。このトピックについて他の質問が寄せられたことは知っていますが、一連の列を取得するための明確な解決策は見つかりませんでした (一意の cout ステートメントを揃える)。

これは私のコードの一部です:

これは次のようになります。
ここに画像の説明を入力

これは私も好きです:
ここに画像の説明を入力

0 投票する
1 に答える
182 参照

c++ - g++ の出力と Visual Studio の出力の不一致。フロート変数

C++ で clock_t 関数を使用してテストしていますが、問題が発生しました。コンパイルするときは、2 つの異なるコンパイラで行います。私の Windows 7 コンピューター (2012) の Visual Studio、および「レンジャー」と呼ばれる Unix システムの g++。さまざまな並べ替え関数を実行するのにかかる時間を秒単位 (最大 1000 分の 1 秒) で出力するためにコードをコンパイルしたところ、g++ コンパイラはタイムスタンプを 1000 で除算する試みを完全に無視しているようですミリ秒から 2 番目の形式に変換します。何かアドバイス?これに関して、g++ と Visual Studio のコンパイラに違いはありますか?

短いコード スニペット (出力と除算のために行うこと):

Visual Studio の出力 (正しい):

Unix の出力 (正しくない) :

助言がありますか?ありがとう!

0 投票する
2 に答える
1825 参照

c++ - Armadillo ライブラリの表示桁数を増やしたい

Armadillo 線形代数ライブラリを使用して行列を対角化しています。最後にファイルに表示/書き込みされる桁数を増やす必要があります。Armadillo のリファレンスによると、「arma::mat」は double 行列を作成します。そこで、iomanip の std::setprecision を使ってみたのですが、なかなかうまくいきませんでした。問題をキャプチャする最小限のコードを次に示します。

そして、ここに私が得るものがあります:

興味深いことに、これは double 変数 "Trace_A" に渡されるトレースでは機能しますが、マトリックス自体では機能しません。私がここで間違っていることは何か分かりますか?

0 投票する
1 に答える
83 参照

c++ - Stream Out 文字列の一部

a をストリーミングしたいのstd::stringですが、最初の 2 文字または最後の 2 文字なしで実行できるようにしたいです。

例えば:

iomanipそのためのツールはありますか?それとも、先に進んで一時的なstrings を作成する必要がありますか?

0 投票する
2 に答える
1320 参照

c++ - setw による切り捨て

強制的setwに切り捨てる方法はありますか?

出力を取得したいとします。

何とか何とかブリールブ
何とか何とかブリーブリー

これを機能させる方法はありますか:

0 投票する
1 に答える
1723 参照

c++ - C++ での出力フラグのリセット

関数の使用を終了する行で、すべての出力フラグをデフォルトにリセットするつもりですresetiosflags。私の期待に反して、この方法で実行しようとすると、誤った出力が提供されます。

私の既知の代替手段は、それらを再記述して個別にフラグを解除することですが、それは不必要に思えます。

0 投票する
0 に答える
217 参照

c++ - C++ iomanip ラッパーを使用する準備はできましたか?

iomanipストリーム修飾子のそのままの使用は、a) 冗長であり、b) エラーが発生しやすい ( sticky と non-stickyなど) ため、ユーザー定義型の場合、すべてのものをデフォルトで非表示にすることができますoperator<<...ここに示すように、たとえば

ただし、組み込み型をフォーマットする場合 (ユーザー定義の演算子内からであっても) 、データが関数呼び出しでラップされる(beware C++14)と同様のアプローチを使用する方がはるかに便利です (IMHO) 。適切なフラグを設定 + リセットする一時オブジェクトを返します。std::quoted

基本的に、書く代わりに:

あなたは仮説的に次のように書くでしょう:

例が示すように、フラグの組み合わせはトリッキーになる可能性があり、悪魔は細部にあると確信しているため、「シェブロン地獄」に対処しようとする先行技術/既存のヘルパー ライブラリがあるかどうか疑問に思っていました。:-)

  • これに対処する既存のライブラリはありますか?
  • 自分で一連のヘルパーを作成したい場合、ここでの技術的な落とし穴は何ですか?

具体的には、この質問は、「タイプ セーフなフォーマット文字列」(Boost.Format が提供するものなど) に関するものではありません。

また、「最高の」ライブラリを求めているのではなく、通常の ostream に対してこれを行うライブラリについて尋ねています。(なぜか見つからなかったので。)

たとえば、C++ 形式の書き込み APIは次のようなことを行いますが、std::iostream に対してではなく、ライブラリの「ストリーム」タイプに対して行います。

0 投票する
2 に答える
16295 参照

c++ - setprecision fixed を使用できるのに、なぜ showpoint を使用するのですか?

showpoint の目的がよくわかりません。小数点を強制的に表示することはわかっていますが、showpoint を使用しなくても「cout << setprecision << fixed」で十分です。

showpoint が必須である例を教えてください。

0 投票する
2 に答える
968 参照

c++ - 余分なメモリをコピーせずに、フォーマットされた char 配列を ostream に送信します

char 配列を ostream に送信する必要があります。次の印刷機能があるとします。

バージョン 1:

バージョン 2:

上記の両方のバージョンは、ある程度機能します。バージョン 1 は余分な文字列オブジェクトを作成するため (メモリの割り当てとデータのコピーが発生します)、あまり効率的ではないように見えます。

ただし、バージョン 2 では書式設定の可能性がなくなります。次の例では、バージョン 1 がうまく機能します (つまり、io マニピュレータは幅を 10 に設定し、それを次の出力フィールドに適用します)。

V1 のように機能を維持する方法はありますが、割り当て/メモリコピーに追加料金を支払う必要はありませんか?