c语言 设置当前路径

原创 2013年12月02日 17:27:55

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

相关文章推荐

C语言chdir()函数:改变当前的工作目录

相关函数:getcwd, chroot 头文件:#include 定义函数:int chdir(const char * path); 函数说明:chdir()用来将当前的工作目录改变成以参数...

C语言windows目录操作

1.获得当前工作目录 char* _getcwd( char *buffer, int maxlen ); // 功 能 : 获得当前工作目录. // 头文件 : #include // 返...

linux C语言获取当前可执行程序的路径及文件名 vs 获取当前工作路径

获取当前工作路径: 头文件:#include 定义函数:char * getcwd(char * buf, size_t size); 函数说明:getcwd()会将当前的工作目录绝对路径复制到...
  • zeweig
  • zeweig
  • 2014年12月01日 20:10
  • 3270

c语言获取当前工作路径(转)

1.获得当前工作目录 [cpp] view plaincopy char* _getcwd( char *buffer, int maxlen );   // 功  能 : 获...

一起talk C栗子吧(第五十八回:C语言实例--获取程序当前的工作路径)

各位看官们,大家好,上一回中咱们说的是main函数参数的例子,这一回咱们说的例子是:获取程序当前 的工作路径。闲话休提,言归正转。让我们一起talk C栗子吧! 我们在工作的时候,有时候需要获...
  • talk_8
  • talk_8
  • 2015年11月05日 22:58
  • 1656

c语言获取当前工作路径(转)

c语言获取当前工作路径(转) --------------------------------------------------------------------------------...
  • woodsp
  • woodsp
  • 2016年07月16日 09:59
  • 1342

C语言把内存的文件保存到硬盘时如何把文件名由用户通过屏幕自己设置,并且保存到指定的路径

一般情况下要想把文件保存到硬盘的指定位置,常常用fopen(“C:\\Users\\han\\Desktop\\filename.txt”,”w”);其中han为电脑的用户名,而filename为你要...

1.6_C#设置程序当前路径

  • 2012年10月29日 17:05
  • 13KB
  • 下载

C语言获取当前系统时间的几种方式

C语言获取当前系统时间的几种方式 C语言获取系统时间的几种方式 C语言中如何获取时间?精度如何? 1 使用time_t time( time_t * timer ) 精确到秒 2 使用cloc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c语言 设置当前路径
举报原因:
原因补充:

(最多只允许输入30个字)