免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6535 | 回复: 12
打印 上一主题 下一主题

[C++] c++ 将普通的字符串 做参数传递给std:ostream出现如下错误。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-06 16:07 |只看该作者 |倒序浏览
在将普通的C字符串做为参数传递给一个函数。
void log(ostream o)
{
    ofstream file ;
    file.open("/tmp/log.log", std::ios::app) ;
    file << o ;
    file.close() ;
}

我直接这样调用log("hello world",为什么会出现conversion from 'const char*' to non-scalar type 'std:stream' requested的编译错误。

有谁知道怎么进行这种转换么??谢谢哦

论坛徽章:
0
2 [报告]
发表于 2006-09-06 16:28 |只看该作者
file<<o.c_str();

论坛徽章:
0
3 [报告]
发表于 2006-09-06 16:44 |只看该作者
c_str 怎么能直接传递给一个 ostream?直接传递给 string 是可以的...

论坛徽章:
0
4 [报告]
发表于 2006-09-06 17:08 |只看该作者
string和c_str都不可以直接转换成ostream....

论坛徽章:
0
5 [报告]
发表于 2006-09-06 17:34 |只看该作者
不至于吧???,我测试下

论坛徽章:
0
6 [报告]
发表于 2006-09-07 11:50 |只看该作者
我说的操作是 log("hello world") 或者是log("hello world" << i << "ok") ;

这个时候这种转换是不允许的。

我想找个解决这个问题的方法。这种语法肯定是不被编译器认可的。

论坛徽章:
0
7 [报告]
发表于 2006-09-07 13:43 |只看该作者


  1.       1 #include <iostream>
  2.       2 #include <fstream>
  3.       3 #include <string>
  4.       4
  5.       5
  6.       6 using namespace std;
  7.       7
  8.       8 int main(void)
  9.       9 {
  10.      10         ofstream out("/tmp/test.out",ios::out);
  11.      11         string str="fuck jp!";
  12.      12         out<<str<<endl;
  13.      13         out<<str.c_str()<<endl;
  14.      14         return 0;
  15.      15 }
  16.      16[/color]




复制代码
测试通过


测试环境FC5

GCC  4.1.0


[ 本帖最后由 net_robber 于 2006-9-7 13:52 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2006-09-07 13:59 |只看该作者
真郁闷,收编居然没有带编译器的机器!!!!!


公司也~~

论坛徽章:
0
9 [报告]
发表于 2006-09-07 14:09 |只看该作者
void log(ostream o)
{
}

反正函数中间就是打开一个文件流file,然后file << o

我直接在其他函数调用log("hello world" << "ok") ;

编译肯定是通不过,想不出应该用什么方式。。。

论坛徽章:
0
10 [报告]
发表于 2006-09-07 16:35 |只看该作者
"hello world" << "ok"



什么意思??????

C+++++++++++++++++++++++++++++语法???


你自己扩充的表达式
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP