我一直在尝试为Date类实现输入成员函数。这就是我所拥有的:
class Date {
int year_;
int mon_;
int day_;
int readErrorCode_;
int value()const;
void errCode(int errrorCode);
public:
std::istream& read(std::istream& istr);
std::ostream& write(std::ostream& ostr)const;
}
std::istream& Date::read(std::istream& istr) {
istr.get(year_,5);
return istr;
}
我想从输入中提取4个字符并将其保存在我的Date类的参数year_中,但我得到了istr.get的错误,我想知道为什么istr.get在cin.get工作时不起作用。 / p>
错误信息是:没有重载函数的实例" std :: basic_istream :: get [with _Elem = char,_traits]"匹配参数列表参数类型是(int,int) 对象类型是:std :: istream
答案 0 :(得分:0)
如果您愿意使用get
功能,您可以通过char读取char,如
char c;
while (is.get(c))
//concatenate into string if not / delim;
还有istream& get (streambuf& sb, char delim);
方法,我不太了解。
但是,最简单的方法是将istream
转换为std::string
,然后使用substring
的{{1}}方法。 How to read entire stream into a std::string?中有一些例子。