問題タブ [manipulators]

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 投票する
4 に答える
2554 参照

c++ - クラス用のカスタムストリームマニピュレータ

演算子<<を介して入力を受け取り、次のようなカスタムマニピュレーターを受け取った後に監査を書き込む単純な監査クラスを作成しようとしています。

コード内のオーバーロードされた演算子はストリームオブジェクトを返さないことを認識していますが、構文のようなマニピュレーターを使用できるかどうか疑問に思っていました。現在、コンパイラは「<<」をバイナリの右シフト演算子と見なしています。

ご入力いただきありがとうございます、パトリック

0 投票する
5 に答える
33649 参照

c++ - C++ - 出力ストリーム マニピュレータ フラグをリセットする方法

出力でフィル値を「-」文字に設定するコード行がありますが、setfill フラグをデフォルトの空白文字にリセットする必要があります。それ、どうやったら出来るの?

私はこれがうまくいくかもしれないと思った:

私は間違った道を進んでいますか?

0 投票する
3 に答える
1615 参照

c++ - カスタムC++マニピュレーターの問題

ロギングクラス内に独自のストリームマニピュレータを実装しようとしています。基本的には、フラグの状態を変更するエンドラインマニピュレータです。ただし、使用しようとすると、次のようになります。

..。

コード:

呼び出そうとするとエラーが発生します:

(logはLogオブジェクトへのポインタです)

何か案は?マニピュレーターが実際にクラス内にあるという事実に何らかの形で関係しているのではないかと思いますが、それは私の大げさな推測です...

乾杯、

トム

編集:フォーマットを制限するため、コメントの代わりにこれをここに置きます。私は自分のstreambufを実装しようとしましたが、1つの例外を除いてうまく機能します。追加のためにfilebufを開こうとすると、失敗します。出力はうまく機能しますが、何らかの理由で追加するだけでは機能しません。追加でofstreamを直接使用しようとすると、機能します。なぜですか?–作品:

「テスト」を正しく追加します。

動作しません:

例外をスローします。openmodeをoutに設定すると、機能します。

乾杯

0 投票する
7 に答える
14153 参照

c++ - std::endl のオーバーロード処理?

次のようにクラスを定義したいMyStream

出力を与える

基本的に、「[何とか]」を先頭に挿入し、終了 std::endlしないたびに挿入したいですか?

ここでの問題はロジック管理ではなく、 の処理の検出と過負荷ですstd::endl。これを行うエレガントな方法はありますか?

ありがとう!

編集: ロジック管理に関するアドバイスは必要ありません。の印刷を検出/過負荷にする方法を知る必要がありstd::endlます。

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

c# - ロボット タスクをスクリプト化するための XML ダイアレクト

次のプロジェクトでは、ハードウェア デバイスをテストする自動化ソリューションを実装する必要があります。基本的に、このテストでは、産業用ロボット アームがテスト対象のデバイスを選択し、それを指定された位置に保持してから、モーターやセンサーなどの一連の他のデバイスを使用して、テスト対象の製品のいくつかの領域を動作させます。

したがって、私のテスト自動化ソリューションは、作動コマンドを発行するか、センサーから情報を取得して、複数のコントローラーと通信する必要があります。

最初に頭に浮かぶアイデアは、カスタム XML 言語で各コントローラーの一連のステップを定義することです。この言語では、「MOVE」、「IF」、「WAIT」、「SIGNAL」などのプリミティブを定義する必要があります。これらのプリミティブは、各コントローラーの操作スクリプトを定義するために使用されます。各コントローラーは非同期で実行されますが、最終的には同期されるため、「WAIT」や「SIGNAL」などが必要です。

Google で基本的な検索を行ったところ、本当に古いもの (工業規格に準拠する必要はありません。これは小規模なベンチャーです) か、他の目的のために設計された XML の方言しか見つかりませんでした。

質問は、独自の XML 標準を作成する代わりに使用できる XML 標準を知っていますか?

編集:私は現在、有望に見える NASA による計画実行言語を調査しています。名前はプレキシルです。誰かがそれについて何か知っているなら、貢献してください。

0 投票する
3 に答える
10371 参照

c++ - マニピュレータを使用して 16 進出力をパディングされた左ゼロでフォーマットするにはどうすればよいですか

以下の小さなテスト プログラムが出力されます。

SS番号IS = 3039

合計の長さが8になるように、左のゼロを埋めて数字を出力したいと思います。

SS 番号は =00003039 (余分なゼロが埋め込まれていることに注意してください)

以下に示すように、マニピュレータと文字列ストリームを使用してこれを行う方法を知りたいです。ありがとう!

テストプログラム:

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

c++ - 特定のクラスのostreamマニピュレータを作成する

ostreamから派生したクラスがあります。

do_something次のように、このクラスに固有に機能するマニピュレータ(たとえば)を作成したいと思います。

私は次のことをしました:

これは機能しますが、かなり醜いです。私は次のことを試しました:

これは機能しません。また、別のアプローチを試しました。

これはまだ機能しません。

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

c++ - ostream showbaseは、ゼロ値に対して「0x」を表示しません

PSPS :( 事前にスクリプト化されたポストスクリプト)
より先見の明のある質問には、次の概念が含まれていることに気づきました。ゼロ値の整数に対する「0x」(showbase)の非表示は標準的な動作ですか。それとも私のMinGW実装の癖ですか?

それはすべて楽しい日曜日の朝に始まりました...私はいくつかのハンドルを16進表現で、一貫したフォーマットされた方法でダンプしたいと思います。先頭の0x固定幅
が 必要ですが、これは、予想されるストリームマニピュレータを使用するとわかりにくいことが証明されています。 これを行うために私が見つけた唯一の方法は、Handlesをunsignedlongにキャストすることです。これは少し不合理に思えます。これを望んでいたのは私だけではないと思います。標準の16進マニピュレーターに何かが足りないのでしょうか。タイプvoid*(HANDLE)は、ostreamの通常の16進処理の外で単純に定義されているためですか?

要約すると、HANDLEをそうでないものにキャストする必要はありません。
「0x」プレフィックスをハードコーディングしたくありません。標準のマニピュレータを使用してそれを行う方法はありますか?または、ostreamのHANDLEの処理をオーバーロードする必要がありますか?(しかし、それは私を過負荷にするかもしれません!)

これが私のテストコード(およびその出力)です。
私は「。」を使用しました わかりやすくするために、塗りつぶし文字として(実際には「0」を使用します)

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

c++ - マニピュレータを使用して句読点を無視する

cinでstdマニピュレーターを使用してパンクチャクションを無視することは可能ですか?たとえば、「1、2、3」のような入力ストリーム(実際にはファイル)があるとします。私ができるようになりたい:

最後a=="one"b=="two"、、c=="three"

0 投票する
3 に答える
2008 参照

c++ - 単純なwostreamロギングクラス(カスタムストリームマニピュレータを使用)

たくさんの質問、記事、ドキュメントを読んでいますが、問題の解決策が見つかりません。

デバッグに使用する簡単なクラスを作成したいと思います。その最終結果は私がこのようなことをすることを可能にするでしょう:

ロガークラス内で、これらのものがコンソール/デバッグファイルに到達するかどうかを切り替えることができるという考えで。

スケルトンをまとめましたが、マニピュレータを機能させるためにオペレータをオーバーロードさせることができません。

Logger.hは次のとおりです。

そしてLogger.cpp:

そしてmain.cpp:

この混乱により、VS2005で次のエラーが発生します。

"エラーC2679:バイナリ'<<':タイプ'doSetState'の右側のオペランドをとる演算子が見つかりません(または受け入れ可能な変換がありません)"

どんな助けでも大歓迎です。

ありがとう!