問題タブ [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.
c++ - ostream 修飾子 c++ を定義する
アセンブリを生成していますが、生成されたすべてのコードを整列させたいと考えています。cout<<"\t"<<left<<setfill(' ')<< setw(8);
これには、各命令の前にsth like があることも含まれます。このコードをすべての行に記述する手間を省く ostream 修飾子を宣言するにはどうすればよいでしょうか。私は次のようなsthを探しています:
ostream mod="\t"<<left<<setfill(' ')<< setw(8);
cout<<mod<<"addiu"<<"$sp, $sp, 24"<<endl;
マクロでこれを実行できることはわかっていますが、ostream オブジェクトでどのように実行できるか知りたいです。
c++ - この出力をフォーマットする方法 C++
単語と一連の整数を値として含むマップがあります。左揃えの単語を出力してから、セット内の整数値を並べた列に出力したいと考えています。これでうまくいくと思いましたが、出力が非常に悪いようです。
数値列が互いに整列し、それらの間に適切な量のスペースができるように、これを調整するにはどうすればよいですか?
これは正しく出力されるはずですが、次のようになります。
c++ - std::setbase(2) がバイナリ出力に切り替わらないのはなぜですか?
のcppreferenceページにstd::setbase
は次のように書かれています:
8、10、または 16 以外の base の値は basefield を 0 にリセットします。これは、10 進数の出力とプレフィックス依存の入力に対応します。
どうして?
これらのベースのみがサポートされている特定の理由はありますか? 難しい選択をせずに、少なくとも 16 まで (実際には 36 まで: 0-9、次に az) をサポートするのは些細なことのように思えます。std::setbase(2)
具体的には、 2 は人気のあるベースであり、 (および対応する)に関心があるはずだと思いますstd::binary
。
私は明らかに自分のビットを印刷できますが、私の ostream がそれを行うことができればよかったでしょう。
c++ - setprecision() を適切に使用して金額の末尾に「.00」を追加するにはどうすればよいですか?
どうやら精度を設定する方法がわかりません。このコードは、料金所を通過する車の料金を出力します。
ただし、出力されるのは、後続ゼロのない「コスト」です。
c++ - ファイルから整数を読み取り、2D ベクトルに格納する
ファイルからの読み取りと 2D ベクトルへの保存に問題があります。これは、ファイルに書き込む関数です。
これは、各行 (高さ * 幅 * num_frames) の回数に乱数を書き込むだけです。このような:
私がやりたいことは、ファイルから読み返し、ファイルのさまざまなチャンク (幅 * 高さ) をさまざまなフレームに保存することです。私はこれをやろうとしましたが、プログラムはエラーなしでブロックされます:
読み取りを開始するために、毎回 6 (バイト数 * 行) を掛けるオフセットを使用しました。構造体 Frame は、値を格納するための 2D ベクトルにすぎません。次のステップでこのマルチスレッドを実行するため、オフセットを使用してこれを行う必要があります。フレームの番号を知っている各スレッドは、読み取りと保存を開始するための正しいオフセットを計算する必要があります。
c++ - 16 進数で istream から double を読み取る
次のように使用して、16進形式の文字列から割り当てるdouble foo
ことができるとします。sscanf
istringstream
しかし、私は同じように振る舞うことができないようです。これらはすべて に 0 を書き込むだけfoo
です:
istringstream("0XD") >> foo
istringstream("0XD") >> hex >> foo
istringstream("D") >> hex >> foo
これは、抽出演算子が次のことを行う必要があることをここで読んだときに特に懸念されます。double
istream
char
前の手順で取得した値が、std::scanf
指定された変換指定子によって解析される入力フィールドで許可されているかどうかがチェックされます。
から 16 進数を読み取れないのはなぜistream
ですか? テストに役立つ場合は、ここにテストコードをいくつか書きました。
c++ - ostringstreamで毎回ioマニピュレータを設定する必要があるかどうか?
次のコードがあります
バージョン 1 では、初めてマニピュレータを設定しました。しかし、6を印刷するとき、「x」で埋められませんでした。
バージョン 2 では、マニピュレータを両方の時間に設定しました。しかし、6を印刷すると、「x」で埋められました。
マニピュレータを毎回設定する必要があるかどうか (または) ここで何か不足していますか?
c++ - 長い文字列をマージン付きで正しく出力する方法 (setw())?
私の文字列は、350 文字の長さです。左右の余白が同じになるように、コンソールの中央に配置する必要があります。
これを setw() してみると、こんな感じで出力されます(最初だけ余白あり)。
私が達成しようとしていること:
私のコードは次のようになります(左側のみ、2番目のものはまだ試していません):
誰かが私の目標を達成する方法を知っていれば、私は感謝します!
c++ - C ++に小数値がある場合に浮動小数点値の出力をフォーマットする
C++ で出力をフォーマットして小数点以下の桁数がある場合は表示する方法、または表示する小数点がない場合は整数全体を表示する方法について助けが必要です。
私が書いた:
期待される出力が得られません。90 を印刷する代わりに、90.0 を印刷します。
c++ - iomanip で行われたすべての変更をリセットするクラス: setprecision、setfill、およびフラグを 1 回の呼び出しで
そのため、iomanip を使用して行った書式設定の変更をリセットしたいことが何度もあったことを知っています。std::cout などの ostream オブジェクトのフォーマットを取得するために使用できるクラスを作成したり、ファイルの書き込み/読み取り用の fstream オブジェクトも同様に機能します。私は主に練習のためにこれを行っており、同じ問題を抱えている他の人を助けるためにやっています.
クラス ResetIOmanip を使用してオブジェクトを作成するだけです。パラメータなしで作成すると、デフォルトとして std::cout が使用されます。パラメータとして ostream/istream オブジェクトを入れることができ、ファイルに対して機能します。フォーマットを変更する前に必ず呼び出してください。次に、オブジェクトからメンバー関数 resetAll() を呼び出すと、フラグがリセットされ、精度がリセットされ、塗りつぶし文字がリセットされます。
ヘッダー ファイルを改善する方法について、お気軽にコメントをお寄せください。私はまだ学んでおり、常に建設的な批判を求めています。ありがとう。