c语言 设置当前路径

来源:互联网 发布:淘宝上下架在哪里设置 编辑:程序博客网 时间:2024/06/03 20:21

1.背景

       由于要用分支定界解决一个运输最短路径问题,需要从txt中读入一个50x50的城市距离数据。

一开始采用了fopen("xx.txt","r")的方式,总是报错,说是找不到文件,打开失败。明明就在目录下为什么会找不到呢?

网上一查,才知道可能是我采用的是相对路径的方式打开的文件,而系统维护的这个相对路径,并不是我这个exe运行时的路径。

那么我把txt放在与exe同目录下就没什么意义了,肯定是打不开的!为什么不用绝对路径呢?因为这个程序交给别人的话,用绝对路径

多半就是读不进来。所以还是用相对路径,并想办法,把系统的当前路径改到我的exe所在路径,这样只有txt与exe同在一个文件夹,在谁的电脑上都能正常打开了。

2.程序

int main(){       const char exename[500];       char pathname[500];       DWORD dwfile;       char  *phead,*plast;       dwfile = GetModuleFileNameA(NULL, exename, 500);       if(dwfile == 0)            printf("Can't get exe filepath! Be careful about the file path.");       else             printf("%s \n",exename);//下面开始将exe的名字和后缀去掉      plast = strrchr(exename, '\\');      phead = exename;      strncpy(pathname,exename,strlen(phead)-strlen(plast)+1);      pathname[strlen(phead)-strlen(plast)+1]='\0';      SetCurrentDirectoryA(pathname);      printf("当前路径为: %s \n",pathname);}

   好了,下面再用fopen("xx.txt","r");就没什么问题了!

原创粉丝点击