鉴于来自cpp.reference.com的ci_string的定义,我们将如何实施运算符>> ?我对它的尝试涉及std :: read,但它似乎不起作用(也就是说,gcount()正确计算输入的字符数,但没有输出)
#include <iostream>
#include <cctype>
#include <string>
// ci_string definition goes here
std::istream& operator>>(std::istream& in, ci_string& str)
{
return in.read(&*str.begin(), 4);
}
int main()
{
ci_string test_str;
std::cin >> test_str;
std::cout << test_str;
return 0;
}
答案 0 :(得分:4)
怎么样
std::istream& operator>>(std::istream& in, ci_string& str)
{
std::string tmp;
in >> tmp;
str.assign( tmp.begin(), tmp.end() );
return in;
}