关于工作路径与模块文件路径


 今天在群里遇到的问题 。

我在D:\路径下访问D:\test\a.exe

a.exe调用了它所在路径下的1.txt

而在D:\下直接访问a.exe则提示找不到文件

涉及到了工作路径 和 模块文件路径的问题。

ifstream fin;

fin.open("1.txt");

默认情况下,open调用的是当前工作路径的文件,即调用你所在路径下的文件,而非调用与a.exe同级目录下的1.txt;

所对应的等效目录就是

fin.open("1.txt");      工作路径\1.txt

而非1.txt真正所在的目录    模块路径\1.txt

模块路径即a.exe所在的路径了。

所以需要绕个弯

 

	ifstream fin;
	char dir[100];
	string findir;
         GetModuleFileName(NULL,dir, 256);   //获取模块路径

	findir.append(dir);
	findir.replace(findir.size()-10,10,"1.txt");		
	
	fin.open(findir.c_str());

嗯  , 完美搞定,有问题时再说。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值