問題タブ [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 投票する
1 に答える
63 参照

c++ - マニピュレータは何らかの方法でストリーム タイプを変換しますか?

ostringstream匿名を使用して生成しようとしていますstring:匿名の文字列ストリームを使用して文字列を構築します

ただし、マニピュレータを使用すると、コンパイルできなくなったようです。

しかし、それはgcc 5.1 でも許可されていないようです:

prog.cpp: 関数内int main():
prog.cpp:8:109: エラー: std::basic_ostringstream<char>::basic_ostringstream(std::basic_ostream<char>&)
const auto myString(static_cast<ostringstream>(ostringstream{} << setfill('!') << setw(13) << "lorem ipsum").str());


/usr/include/c++/5/iomanip:45:0 から含まれるファイル内の呼び出しに一致する関数がありません
: prog.cpp:1 から:
/ usr/include/c++/5/sstream:582:7: 注: 候補
std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(std::basic_ostringstream<_CharT, _Traits, _Alloc>&&)[with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]
basic_ostringstream(basic_ostringstream&& __rhs)

/usr/include/c++/5/sstream:582:7: 注: 引数 1 から /usr/include/c++/5/sstream:565:7 への既知の変換はありませんstd::basic_ostream<char>:std::basic_ostringstream<char>&&
注: 候補:
std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(const __string_type&, std::ios_base::openmode)[with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::basic_ostringstream<_CharT, _Traits, _Alloc>::__string_type = std::basic_string<char>; std::ios_base::openmode = std::_Ios_Openmode]
basic_ostringstream(const __string_type& __str,

/usr/include/c++/5/sstream:565:7: 注: 引数 1 から /usr/include/c++/5/sstream:547:7 への既知の変換はありませんstd::basic_ostream<char>:const __string_type& {aka const std::basic_string<char>&}
注: 候補:
std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(std::ios_base::openmode)[_CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::ios_base::openmode = std::_Ios_Openmode]
basic_ostringstream(ios_base::openmode __mode = ios_base::out)

/usr/include/c++/5/sstream:547:7: 注: 引数 1 からstd::basic_ostream<char>への既知の変換はありませんstd::ios_base::openmode {aka std::_Ios_Openmode}

これは別の gcc ストリームのバグですか、それとも私がしていることは実際には違法ですか?

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

c++ - C++ 式の後続ストリーム マニピュレータの意味

各ペアの両方の式の違いは何ですか? これらの式の末尾の末尾の効果がわかりませんstd::dec

で、これcinの間に:

この :

この間の、と同じ質問cout

この :

ありがとう !

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

c++ - カスタム istream マニピュレータの作成

istream入力から 2 文字を読み取り、入力から 2 文字をスキップして、入力がなくなるまでそれを行うカスタム マニピュレータを作成したいと考えています。

たとえば、次のようなコードがあるとします。

skipcharユーザーが を入力した場合、マニピュレータはどこにあり1122334455strが含まれている必要があります113355

これは私がこれまでに得たものです。このコードを適切に機能させるには、while ループ条件に何を入れるべきかわかりません。

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

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

c++ - ユーザーが入力した文字列内の単語をカウントする

それで、宿題の最後の章の復習問題に取り組んでいます。

私の質問は、ユーザーが文字列の文を入力した場合、どのように単語数をカウントするのでしょうか? クラスでカバーされていなかった、またはクラスでカバーされるとは思いません。

文を要求し、getline を使用して文字列を読み取ることまではできましたが、入力をファイルに書き込み、同じファイルを開き、そのように単語をカウントする以外に、個々の単語をカウントするにはどうすればよいでしょうか?

0 投票する
4 に答える
1725 参照

c++ - 独自のマニピュレータを作成するには?

入力と出力用に独自のマニピュレータを書きたいとしましょう。

また

mymanip がしたいことは、入力から読み取った文字の大文字と小文字を切り替えて、結果を 1 つの文字列に割り当てることです。

したがって、「QwErTy」と入力すると、文字列に「qWeRtY」が表示されます。

これは 1 つの機能を持つ非常に基本的なタスクですが、マニピュレーターについてもっと学びたいと思っています。

誰かが手がかりを与えることができますか?

ありがとうございました。

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

c++ - カスタム マニピュレータは Visual C++ でコンパイルされますが、g++/clang ではコンパイルされません

QueuedLogログメッセージをキューに入れ、必要に応じてキュー内のすべてのログメッセージを挿入するロガークラスがありますstd::ostreamendm各ログ メッセージを分離するために、 と同様の方法で使用される と呼ばれるマニピュレータを作成しましたstd::endl。たとえば、次のようなユース ケースがあります。

endmコードは Visual C++ では問題なくコンパイルされますが、マニピュレータを使用しようとすると g++ と clang++ はコンパイルに失敗します。これは、(通常は別のヘッダー ファイルに存在する) の最小バージョンでありQueuedLog、問​​題を示す小さな使用例があります。

または、この(おそらく過度に)単純化された例:

rextesterで 3 つのコンパイラすべてでコンパイルしようとしましたが、Visual C++ でのみ正常にコンパイルされます。

g++ で次のエラーが発生します。

error: ‘endm’ was not declared in this scope

clang++ からのエラー メッセージは次のようになります。

error: use of undeclared identifier 'endm'

Visual C++ では機能するのに、g++ や clang++ では機能しないのはなぜですか? g++/clang++ で修正するにはどうすればよいですか? このソリューションは、3 つのコンパイラすべてで同時に機能する必要はありません。g++ と clang++ で修正する方法を知りたいだけです。

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

c++ - std::left を引数として渡す

文字の位置が異なる可能性があるものを表示する機能があります。関数は次のようになります。

ただし、この関数をこのように呼び出そうとすると

次のエラーが表示されます

std::coutなぜうまく渡すことができるのかわかりませんが、std::leftそうするのを拒否します。また、 とどうlvalue reference to type 'std::ios_base'違うのlvalue reference to type 'std::ios_base'ですか?

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

c++ - 列挙値を文字列として出力するマニピュレータはありますか?

列挙名の色を作成しました。そして、background_colortype color の変数を作りました。次に、青と仮定して、列挙値を割り当てます。background_color次に、を使用して印刷したいと思いましたcout。しかし、列挙型メンバーの対応する int 値を出力します。background_colorを文字列として出力するマニピュレータがあるかどうかを知りたかったのです。スイッチケースを使用してそうできることを知っています。coutでもマニピュレーターを使ってこれを手に入れたかった。

1.Aではなく出力として青を印刷することを期待していました

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

c++ - C++ ストリーム マニピュレータを 1 つの変数にチェーンする

次のように、いくつかのストリーム マニピュレータを ofstream でチェーンしています。

代わりにこのようなことをすることは可能ですか?:

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

c++ - バッファを手動でフラッシュするには?

これは同じ質問ですが、適切に回答されていません。

コード

出力

ここでは、バッファにつながる出力ストリームの1文字のみです。そのため、バッファはまだいっぱいではなく、画面に出力が表示されます。バッファが自動的にフラッシュされることを意味します。

そのため、バッファが自動的にフラッシュされず、マニピュレータ フラグを使用する必要がある例を挙げてくださいflush