重载<<问题

babyacolyte 2013-01-25 11:08:06
如图,ofstream<<的参数表里没有string 所以我想重载<<使我能把string写入到流中,但是会报错,如图中,我又不好修改iostream文件加入友元,请问这个重载怎么弄?

提过一个类似的问题:麻烦顺便一起看看
http://bbs.csdn.net/topics/390354076?page=1#post-393564920
http://dl.zhishi.sina.com.cn/upload/90/31/61/1185903161.1451361396.jpg
...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mujiok2003 2013-01-27
  • 打赏
  • 举报
回复
引用 楼主 babyacolyte 的回复:
如图,ofstream<<的参数表里没有string 所以我想重载<<使我能把string写入到流中,但是会报错,如图中,我又不好修改iostream文件加入友元,请问这个重载怎么弄? 提过一个类似的问题:麻烦顺便一起看看 http://bbs.csdn.net/topics/390354076?page=1#post-393564920 http://dl.z……
加上
#include <string>
就可以了。
mujiok2003 2013-01-27
  • 打赏
  • 举报
回复
std::string 可以支持流操作,不用自己重载

#include <string>
#include <iostream>
int main()
{
  std::string line;
  std::cin >> line;
  std::cout << line;
  return 0;
}
旅客 2013-01-27
  • 打赏
  • 举报
回复
你所谓的语法糖是什么
dingqiang107 2013-01-25
  • 打赏
  • 举报
回复
首先,你的operator<<()里面只调用了ofs<<s,相当于自己调用自己。你可以用ofs<<string.c_str()或一个一个字符输出。 其次,重载的operator<<()应放在namespace std里面。
ppsharp 2013-01-25
  • 打赏
  • 举报
回复
图挂了。。。。。。。
赵4老师 2013-01-25
  • 打赏
  • 举报
回复
操作符重载是语法糖。

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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