cin>>string是如何取得输入流长度的呢
cinstring是怎么取得输入流长度的呢?在做一个string的类,想重载,由于内存需要自己管理,在cinstring
cin>>string是怎么取得输入流长度的呢?
在做一个string的类,想重载>>,由于内存需要自己管理,在cin>>string时我想必须先取得输入流长度才能知道应该分配多少内存吧?应该怎么做呢?
[解决办法]
是先分配一段内存,然后push_back..
当不够了,再new copy,delete old
一直循环...
[解决办法]
string.size()???
[解决办法]
[解决办法][解决办法][解决办法][解决办法]string类自动管理长度。
楼主的想法真是舍近求远。
[解决办法]重新发明轮子? 何不参考参考库里自带的方法呢
[解决办法]似乎我也不懂
[解决办法]自己设定一个变量或者常量
就像你用cin.get(str, N)
后面这个N是你给定的,而不是缓冲区长度
然后把str复制给string对象就行了。
[解决办法]C/C++ code std::istream & operator>>(std::istream &is, string &s) { char* temp = new char[string::CINLEN]; is >> temp; if (is) s = temp; delete[] temp; return is; }