2

鉴于 cpp.reference.com 中ci_string的定义,我们将如何实现operator>>?我的尝试涉及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; 
} 
4

1 回答 1

4

怎么样

std::istream& operator>>(std::istream& in, ci_string& str)
{
    std::string tmp;
    in >> tmp;
    str.assign( tmp.begin(), tmp.end() ); 
    return in;
} 
于 2013-10-20T09:46:45.643 回答