私はこの質問に少し立ち往生しています..
ヘッダファイル* *
#include "Duration.h"
class Track
{
private:
Duration trackTime;
std::string trackTitle;
public:
inline Duration getTrackTime() const;
inline std::string getTrackTitle() const;
Track(Duration d = Duration(0,0,0),std::string trackTitle = "");
};
inline std::string Track::getTrackTitle() const
{
return trackTitle;
}
** * * cpp ファイル..** * *
using namespace std;
Track::Track(Duration trackTime , string trackTitle)
{
this->trackTitle = trackTitle;
this->trackTime = trackTime;
}
istream& operator>>(istream& is, Track & t)
{
Duration trackTime;
string trackTitle;
char c1;
if (is >> trackTime >> c1 >>trackTitle)
{
if(c1 == '-')
{
t = Track(trackTime,trackTitle);
}
else
{
is.clear(ios_base::failbit);
}
}
return is;
}
** * **メイン* ***
int main(int argc, const char * argv[])
{
Track track;
cin >> track;
cout << track <<endl;
}
私はostreamをテストしているだけです。
しかし、このように文字列を入力すると。「0:03:30 - ヘイ ジョー (ビリー ロバーツ)」
「0:03:30 - Hey」のみが出力されます
なぜ印刷結果がそのようになるのか、誰でも説明できますか? トラックのタイトル全体を印刷するにはどうすればよいですか。