标题:表达式必须包含bool类型(或可转换成bool)
取消只看楼主
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
结帖率:88.89%
已结贴  问题点数:2 回复次数:4 
表达式必须包含bool类型(或可转换成bool)
ofstream outfile;
    string filename;
    cout<<"Please enter a file name:";
    cin>>filename;

if(!outfile.open("filename",ios::binary))
老说outfile"表达式必须包含bool类型(或可转换成bool)",是怎么回事呢??
搜索更多相关主题的帖子: ios 表达式 
2012-12-13 20:29
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
得分:0 
C++刚学到读写文件,还真不怎么懂,以下是完整子函数
void savedata(Student*s[],int n)
{
    ofstream outfile;
    string filename;
    int i;
    cout<<"Please enter a file name:";
    cin>>filename;
    if(!outfile.open("filename",ios::binary))
    {
        cerr<<"Open file error!"<<endl;
        getch();
        exit(1);
    }
    for(i=0;i<n;i++)
        outfile.write((char*)s[i],sizeof(s));
    outfile.close();

}



如果改成这样就不会报错
outfile.open("filename",ios::binary);
if(!outfile)
     {
        cerr<<"Open file error!"<<endl;
        getch();
        exit(1);
    }


[ 本帖最后由 锋了 于 2012-12-13 21:01 编辑 ]
2012-12-13 20:36
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
得分:0 
没人回答吗??
2012-12-13 22:06
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
得分:0 
回复 5楼 rjsp
版主,三楼就是我啊!
按照版主意思是我的书有问题咯,我先在用的是谭浩强编著的,他编的书可以用吗?
2012-12-14 10:07
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
得分:0 
回复 8楼 rjsp
版主利害,严重受教了!!!
但有一点问题,就是你提出的 “Student*s[]估计是你手误,应该是 Student s[] 或 Student* s”,如果写成Student* s的话
这一步是有问题的
for(i=0;i<n;i++)
    outfile.write((char*)s[i],sizeof(s));  //不存在student 到char* 的转化

第二
“i++ 当写成 ++i”的问题,我理解没错i++是用后在自增,++i是用前自增,
如果是
for(i=0;i<n;i++)cin<<a[i];

的话,那不是不能输入a[0]了吗?
2012-12-15 10:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-391149-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.526385 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved