首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

cin>>string是如何取得输入流长度的呢

2012-05-27 
cinstring是怎么取得输入流长度的呢?在做一个string的类,想重载,由于内存需要自己管理,在cinstring

cin>>string是怎么取得输入流长度的呢?
在做一个string的类,想重载>>,由于内存需要自己管理,在cin>>string时我想必须先取得输入流长度才能知道应该分配多少内存吧?应该怎么做呢?

[解决办法]
是先分配一段内存,然后push_back..
当不够了,再new copy,delete old
一直循环...
[解决办法]
string.size()???
[解决办法]

探讨
在做一个string的类,想重载>>,由于内存需要自己管理,在cin>>string时我想必须先取得输入流长度才能知道应该分配多少内存吧?应该怎么做呢?

[解决办法]
探讨
引用:
引用:
引用:
引用:
在做一个string的类,想重载>>,由于内存需要自己管理,在cin>>string时我想必须先取得输入流长度才能知道应该分配多少内存吧?应该怎么做呢?

cin遇到流缓冲中的eof就知道到达末尾了。


我是使用char *pStr存数据,动态内存分配。
我重载>>时是想cin>>pS……

[解决办法]
探讨
引用:
引用:
引用:
引用:
引用:
引用:
在做一个string的类,想重载>>,由于内存需要自己管理,在cin>>string时我想必须先取得输入流长度才能知道应该分配多少内存吧?应该怎么做呢?

cin遇到流缓冲中的eof就知道到达末尾了。


我是使用char *pStr存数……

[解决办法]
探讨
引用:

引用:
引用:
引用:
引用:
引用:
引用:
引用:
在做一个string的类,想重载>>,由于内存需要自己管理,在cin>>string时我想必须先取得输入流长度才能知道应该分配多少内存吧?应该怎么做呢?

cin遇到流缓冲中的eof就知道……

[解决办法]
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;    } 

热点排行