如何在c ++中打开不同目录的文件?

时间:2017-03-19 12:39:51

标签: c++ file

我目前正在制作一个板球记分牌项目。 我想将团队数据保存在一个文件夹中。

我尝试了很多东西,但是我无法打开保存在不同文件夹中的文件。

以下是我的代码片段:

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();

打开它

1 个答案:

答案 0 :(得分:1)

  

我无法打开保存在其他文件夹中的文件。

我猜你的系统可能没有“/ teams”文件夹。

在Linux上,你可能有你创建的“/home/anurag/teams/australia.dat”。

我建议你在C ++代码中尝试相对路径。

如果您的代码和可执行文件位于/ home / anurag / teams / src中 和 如果您的文件位于/ home / anurag / teams /

然后你的相对路径就是'up one'目录。

  "../australia.dat"