关闭

c语言 设置当前路径

768人阅读 评论(0) 收藏 举报
分类:

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");就没什么问题了!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:25027次
    • 积分:367
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:22篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论