このオーバーロードされた演算子で何が問題になっていますか?stringstream演算子の入力に失敗しました
a
,b
、およびc
というメンバを整数として持つオブジェクトに対して、stringstream
を解析しようとしています。
istream& operator>> (istream& in, Feedback& object) {
cout << __PRETTY_FUNCTION__ << endl;
in >> object.a;
in >> object.b;
in >> object.c;
cout << object.a << " " << object.b << " " << object.c << endl;
return in;
}
最後のcout
は、すべてのメンバーに対して0を出力しています。
私はstringstream
が正常にこのコードで入力者の前に満たされていることがわかります...
cout << __PRETTY_FUNCTION__ << ": " << ss.str().c_str() << endl;
ss >> feedback;
このcout
プリント:
Feedback parseFeedbackData(unsigned char*, int): 10 2 4
出力過負荷にオペレータが正常に動作しています。あなたは以下のコードを見つけることができます。
ostream& operator<< (ostream& out, Feedback& object) {
cout << __PRETTY_FUNCTION__ << endl;
out << object.a << " " << object.b << " " << object.c;
return out;
}
これは問題ではありませんが、実際には 'std :: endl'が行う余分なものが必要ですか? '' \ n ''は行を終わらせます。 –