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()用来将当前的工作目录改变成以参数...
  • Lina_ACM
  • Lina_ACM
  • 2016年07月14日 08:46
  • 4607

C语言获取当前工作路径

目前做C语言程序都在windows下进行,目前就windows下获取当前目录的方法进行一个总结。 第一种方法:_getcwd() char* _getcwd( char *buffer, int ma...
  • u010166404
  • u010166404
  • 2015年06月06日 23:22
  • 3550

Linux中C语言实现当前目录下文件查看

  • 2008年11月15日 22:20
  • 1KB
  • 下载

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

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

C语言中相对路径的使用

在C语言实践中,我们经常需要读取与当前程序文件在同一根目录下的其它文件或文件夹中的内容,这就需要用到相对路径。C语言中的相对路径“相对”麻烦,现举例如下:     假设程序源代码文件在C:\co...
  • yangpan011
  • yangpan011
  • 2017年10月22日 11:23
  • 454

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

1.获得当前工作目录 [cpp] view plaincopy char* _getcwd( char *buffer, int maxlen );   // 功  能 : 获...
  • wangdq_1989
  • wangdq_1989
  • 2015年04月10日 22:28
  • 740

C语言中 获取当前绝对路径

 获取当前工作目录是使用函数:getcwd。cwd指的是“current working directory”,这样就好记忆了。 函数说明:     函数原型:char* getcw...
  • huhongfei
  • huhongfei
  • 2014年08月10日 15:01
  • 2810

C for linux 更改当前工作目录函数 chdir 或 fchdir

头文件:#include 用法格式:int chdir ( const char *path );                  int fchdir ( int fd );chdir用来将当前工...
  • cvxiomin
  • cvxiomin
  • 2009年09月02日 15:17
  • 6319

c语言 设置当前路径

1.背景        由于要用分支定界解决一个运输最短路径问题,需要从txt中读入一个50x50的城市距离数据。 一开始采用了fopen("xx.txt","r")的方式,总是报错,说是...
  • u012745772
  • u012745772
  • 2013年12月02日 17:27
  • 921

C语言windows目录操作

1.获得当前工作目录 char* _getcwd( char *buffer, int maxlen ); // 功 能 : 获得当前工作目录. // 头文件 : #include // 返...
  • yangalbert
  • yangalbert
  • 2012年04月12日 19:50
  • 8445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c语言 设置当前路径
举报原因:
原因补充:

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