C++自行输入文件名打开文本文件
定义了两个全局变量charname[50];ifstreamfp(name,ios::in);voidmain(){cin>>name;if(!fp)cout<<"打开错...
定义了两个全局变量
char name[50];
ifstream fp(name,ios::in);
void main()
{
cin>>name;
if(!fp)
cout<<"打开错误";
else{};
}
每次我输入文件名包括扩展名之后他总是说打开错误
如果把ifstream fp(name,ios::in);改为ifstream fp(“1.txt”,ios::in);(1.txt为文本名)就可以打开,求解 展开
char name[50];
ifstream fp(name,ios::in);
void main()
{
cin>>name;
if(!fp)
cout<<"打开错误";
else{};
}
每次我输入文件名包括扩展名之后他总是说打开错误
如果把ifstream fp(name,ios::in);改为ifstream fp(“1.txt”,ios::in);(1.txt为文本名)就可以打开,求解 展开
3个回答
展开全部
这是当然的. 你的fp是全局变量, 全局变量的构造在main之前, 也就是说你cin之前fp就已经尝试打开文件了, 这个时候name还是空, 自然不行.
void main()
{
char name[50];
ifstream fp; // 先不打开文件, 等待输入
cin>>name;
fp.open(name,ios::in); // fstream的open函数用来打开一个文件
if(!fp)
cout<<"打开错误";
else{};
}
void main()
{
char name[50];
ifstream fp; // 先不打开文件, 等待输入
cin>>name;
fp.open(name,ios::in); // fstream的open函数用来打开一个文件
if(!fp)
cout<<"打开错误";
else{};
}
展开全部
在main里,cin后定义fp就可以了!不然打开一个空串为名的文件当然打不开了。注意name的第一个客字符是0,以后也全0,文件打开执行结束才进入main时,再输入文件名,也没有什么用了。都出错过了,亡羊补牢,为时筷矣!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char name[50];
ifstream fp(name,ios::in);
void main()
{
cin>>name;
fp.clear();
fp.open(name);
if(!fp)
cout<<"打开错误";
else{cout<<"success!!";};
}
ifstream fp(name,ios::in);
void main()
{
cin>>name;
fp.clear();
fp.open(name);
if(!fp)
cout<<"打开错误";
else{cout<<"success!!";};
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询