关于string的<<与>>

ch_etang 2003-10-24 10:49:25
有:
istream is;
ostream os;
string s;
long l;
若用:
is << s << l;
存,用:
os >> s >> l;
会有问题。如若s = "abc", l = 123,则存后再取后会有s = "abc123",而l没取到。
则可用
is << s << ' ' << l;
存,用:
os >> s >> l;
但若s为空,或包含有' ',则又会有问题。

究竟该怎样地方便<<与>> string???????

在线求答。不胜感激!!!
...全文
32 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
MilitaryMiniatures 2003-10-25
  • 打赏
  • 举报
回复
你这里,is应该是输入把?os应该是输出把?是不是is和os写反了?
对于你这种情况,我感觉,应该把string的长度纪录下来,这样,下次读数据的时候,就知道应该读多长了。
这些流能不能设置成二进制的流?如果可以,问题就解决了。
ttlb 2003-10-25
  • 打赏
  • 举报
回复
有空格的时候,需要用 stringstream 处理
ch_etang 2003-10-25
  • 打赏
  • 举报
回复
谢谢各位。
不好意思,is与os的操作写错了。

若要将它们以二制流方式读写文件,用ifstream/ofstream不知该如何处理?
谢谢!
leyt 2003-10-25
  • 打赏
  • 举报
回复
至于第一个为空的问题,得自己做判断。
leyt 2003-10-25
  • 打赏
  • 举报
回复
#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main()
{

ostringstream os;
string s1("abc");
long l=123;
string s3,s4;
os<<s1<<' '<<l;
istringstream is(os.str());

is>>s3>>s4;

cout<<s3<<'\n'<<s4;
}
tolixiaohui 2003-10-25
  • 打赏
  • 举报
回复
is << s << l;
不对

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧