Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在c+;中从不同目录打开文件+;?_C++_File - Fatal编程技术网

C++ 如何在c+;中从不同目录打开文件+;?

C++ 如何在c+;中从不同目录打开文件+;?,c++,file,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

我目前正在做一个板球记分板项目。 我希望将团队数据保存在一个文件夹中

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

以下是我的代码片段:

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(strcmp(TeamName,“Australia”)==0 | | strcmp(TeamName,“Australia”)==0)
rf.open(“/teams/australia.dat”,ios::in | ios::binary);
否则如果(strcmp(TeamName,“india”)==0 | | strcmp(TeamName,“india”)==0)
rf.open(“india.dat”,ios::in | ios::binary);
else if(strcmp(TeamName,“英格兰”)==0 | | strcmp(TeamName,“英格兰”)==0)
rf.open(“england.dat”,ios::in | ios::binary);
否则如果(strcmp(TeamName,“巴基斯坦”)==0 | | strcmp(TeamName,“巴基斯坦”)==0)
rf.open(“pakistan.dat”,ios::in | ios::binary);
否则,如果(rf)
{
库特
我无法打开保存在其他文件夹中的文件

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

在Linux上,您可能创建了“/home/anurag/teams/australia.dat”

<>我建议您在C++代码中尝试相对路径。< /P> 如果您的代码和可执行文件位于/home/anurag/teams/src中 和 如果您的文件位于/home/anurag/teams中/

那么您的相对路径就是“上一个”目录

  "../australia.dat"  

错误消息是怎么说的?请注意,路径中的前导斜杠意味着它是根目录中的绝对路径。从中我们可以推断,不以斜杠开头的路径是相对的,它们是相对于程序当前工作目录的。如果您不能确定程序直接工作的是什么,则绝对路径通常是好的ory可能是。另外,请阅读:没有编译时错误。文件在运行时无法打开。如果(!rf.is_open())cerrSome程序员杜德:谢谢!给出完整的地址是可行的!但是如果我们把整个项目移到其他地方,那么每次我都必须更改代码中的地址。难道没有更简单的方法吗?有更多的信息,比如操作系统和最简单的代码所在地和可执行文件所在地的路径轮廓吗如果有数据文件,我们可能会提供更多帮助。