2
給定ci_string的定義從cpp.reference.com,我們將如何執行操作符>>?我在它參與的std ::閱讀的嘗試,但它似乎沒有工作(即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;
}
Splendid!謝謝你,@丹尼爾弗雷。 – TheSOFan
如果你打算去那條路線,我會使用'str.assign(tmp.begin(),tmp.end())',而不是'c_str'的解決方案。爲什麼當你知道它時重新計算目標的長度? –
@JamesKanze它的可讀性不好,但是一個好主意。我只是想知道今天的編譯器是否足夠聰明,可以直接從上面的代碼中的'tmp'獲取長度作爲優化。 –