才鸟问题
#include<iostream>
#include<fstream>
using namespace std;
void main()
{
fstream file("f2",ios_base::out);
if(file)
{
char data[]="money";
for(int i=0;data[i]!='\0';i++)
file<<data[i];
}
}
系统提示说conditional expression of type 'class std::basic_fstream<char,struct std::char_traits<char> >' is illegal
请问错在那里?
问题点数:20、回复次数:8Top
1 楼xiaocai0001(高楼目尽欲黄昏/梧桐叶上萧萧雨)回复于 2005-12-21 21:10:31 得分 5
想测试file是否正确打开
可以用fstream的成员函数fail()来测试或用is_open()来测试文件是否打开Top
2 楼CCB405()回复于 2005-12-22 14:09:27 得分 0
DINGTop
3 楼cyberHunK(→迈克·老猫←)回复于 2005-12-22 14:46:02 得分 5
#include<iostream>
#include<fstream>
using namespace std;
void main()
{
fstream file("f2",ios_base::out);
if(!file)
{
cout << "error" << endl;
return ;
}
else
{
char data[]="money";
for(int i=0;data[i]!='\0';i++)
file << data[i];
}
}Top
4 楼czg516(伟大的程序员从一点一滴做起)回复于 2005-12-22 16:06:27 得分 0
fstream file("f2",ios_base::out);//文件名是f2么??/没有后缀名么???Top
5 楼czg516(伟大的程序员从一点一滴做起)回复于 2005-12-22 16:07:36 得分 0
你用绝对路径打开下,看是否能行不??
fstream file("e://.....//f2.txt",ios_base::out);
Top
6 楼cyberHunK(→迈克·老猫←)回复于 2005-12-22 16:35:37 得分 0
楼主快结帖吧!
就是第一次文件没打开,下次写这个记着加个判断也不是什么麻烦事!Top
7 楼nchang(御月)回复于 2005-12-22 17:08:56 得分 0
就是说,可以用if(!file)来判断文件没有打开,但是用if(file)就会有语法错误,这时改成if(file.is_open())就可以了Top
8 楼xuxf055()回复于 2005-12-22 18:58:32 得分 10
#include<iostream>
#include<fstream>
using namespace std;
void main()
{
fstream file("f2",ios_base::out);
if(file.is_open())
{
char data[]="money";
for(int i=0;data[i]!='\0';i++)
file<<data[i];
}
}Top




