私の目標は、に変換すること' '
です" "
'\n'
"\n"
以下のコードは一般的なケースで機能しますが、スペースと。では機能しません'\n'
。>>
と演算子はとs<<
を取り込めないためです。' '
'\n'
std::string stringFromChar(char a) {
std::stringstream ss(std::stringstream::in | std::stringstream::out | std::stringstream::binary);
std::string s;
ss << a;
ss >> s;
return s;
}
を使って考えたstd::stringstream::binary
のですが、読み取りと書き込みの両方に2進数を使用しています。したがって、スペースや改行を失うことなく、文字を保持します。
であるのに、でa
あることがわかりました。' '
s
""
私はこれを解決する方法を知っています:
std::string stringFromChar(char a) {
std::stringstream ss(std::stringstream::in | std::stringstream::out | std::stringstream::binary);
std::string s;
ss << a;
s = ss.str();
return s;
}
読み取り中にスペースや改行が削除されないのに、書き込み中に削除されるというのは本当ですか?そして、なぜstringstreamでバイナリを使用しないのですか?
また、ss >> std :: noskipws >>sを使用してみました。
std::string stringFromChar(char a) {
std::stringstream ss(std::stringstream::in | std::stringstream::out | std::stringstream::binary);
std::string s;
ss << a;
ss >> std::noskipws >> s;
return s;
}
それもうまくいきませんでした。なんで?sは引き続き""として返されます。