LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1588|回复: 4

LINUX下 用过C++编程的进来

[复制链接]
发表于 2002-11-4 12:59:42 | 显示全部楼层 |阅读模式
int i;
s=1;
ofstream outfile("list");
outfile<<s<<endl;

ifstream infile("list");
cout<<infile<<endl;
我碰到了一个大致可以简写成以上形式的问题,在将S输入文件时,确实没有问题,在LIST文件里有1,但是将1输出时,却出来0xffff这样的东西,不知为什么?
发表于 2002-11-4 14:50:12 | 显示全部楼层
cout<<infile<<endl;
这句有问题
改为
int var;
infile>>var;
cout<<var<<endl;
应该就行了
 楼主| 发表于 2002-11-4 15:41:38 | 显示全部楼层

我懂你意思了

你的意思是输入流不能直接作为输出的参数,但是实际遇到要输出的比较复杂,不是内置类型可以表示的,比如vector,难道要逐一迭代然后才能输出,c++的输入输出流是在下的弱项,有没有人能够详细解释一下其中的道理。谢谢
发表于 2002-11-5 08:33:55 | 显示全部楼层

Re: 我懂你意思了

最初由 lensson 发布
你的意思是输入流不能直接作为输出的参数,但是实际遇到要输出的比较复杂,不是内置类型可以表示的,比如vector,难道要逐一迭代然后才能输出,c++的输入输出流是在下的弱项,有没有人能够详细解释一下其中的道理。谢谢


不知道你的 vector 输出的时候是什么格式的呢? 试试这样:

void func (void) {
ifstream in ("filename.txt");
cout << in.rdbuf ();
in.close ();
}
发表于 2002-11-7 02:20:10 | 显示全部楼层
是因为ostream类的<<这个操作符函数中没有ifstream做参数的形式。

看来能够通过编译像是g++不够严谨。
但可能是某些需要让g++这样做,它有它的理由吧,我不精,解释不了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表