我目前正在制作一个板球记分牌项目。 我想将团队数据保存在一个文件夹中。
我尝试了很多东西,但是我无法打开保存在不同文件夹中的文件。
以下是我的代码片段:
if(strcmp(TeamName,"Australia")==0||strcmp(TeamName,"australia")==0)
rf.open("/teams/australia.dat",ios::in|ios::binary);
else if(strcmp(TeamName,"india")==0||strcmp(TeamName,"India")==0)
rf.open("india.dat",ios::in|ios::binary);
else if(strcmp(TeamName,"England")==0||strcmp(TeamName,"england")==0)
rf.open("england.dat",ios::in|ios::binary);
else if(strcmp(TeamName,"pakistan")==0||strcmp(TeamName,"Pakistan")==0)
rf.open("pakistan.dat",ios::in|ios::binary);
else if(rf)
{
cout<<"\n\t\t FILE NOT FOUND";
return ;
}
if(!rf.is_open())
cerr<<"\n\n\t\tFile not open!";
rf.read((char*)&rec,sizeof(rec));
cout<<"\n\t\t Team "<<TeamName;
while(!rf.eof())
{
cout<<"\n\t\t "<<rec.PlayerNumber<<"\t"<<rec.PlayerName;
rf.read((char*)&rec,sizeof(rec));
}
没有编译时错误。该文件无法在运行时打开。 if(!rf.is_open())cerr&lt;&lt;“\ n \ n \ t \ t \ t \文件未打开!”;此错误消息将打印在控制台上,并且无限循环。
如何使用file.open();
打开它答案 0 :(得分:1)
我无法打开保存在其他文件夹中的文件。
我猜你的系统可能没有“/ teams”文件夹。
在Linux上,你可能有你创建的“/home/anurag/teams/australia.dat”。
我建议你在C ++代码中尝试相对路径。
如果您的代码和可执行文件位于/ home / anurag / teams / src中 和 如果您的文件位于/ home / anurag / teams /
然后你的相对路径就是'up one'目录。
"../australia.dat"