用c 怎么获取当前程序所在的路径
答案:1 悬赏:0 手机版
解决时间 2021-01-25 06:42
- 提问者网友:雪舞兮
- 2021-01-24 08:40
用c 怎么获取当前程序所在的路径
最佳答案
- 五星知识达人网友:怙棘
- 2021-01-24 09:43
要用 c++ 程序:
#include <windows.h>
#include <string>
#include <iostream>
using namespace std;;
string ExePath() {
char buffer[MAX_PATH];
GetModuleFileName( NULL, buffer, MAX_PATH );
string::size_type pos = string( buffer ).find_last_of( "\\/" );
return string( buffer ).substr( 0, pos);
}
int main() {
cout << "my directory is " << ExePath() << "\n";
}
=====
c 程序,也许可以通过char *argv[] 寻找,
int main(int argc, char *argv[]){。。。。}
argv[0] 含程序名,可以尝试 用 system() 调 DOS 命令查找:
#include<stdio.h>
int main(int argc, char *argv[])
{
FILE *fp;
char s[80];
sprintf(s,"DIR %s.c > a.log",argv[0]);
system(s); // 执行后,屏幕输出 存入 a.log 文本文件
fp =fopen("a.log","r"); // 打开文件
// 这里 一行一行地读文件,找到 关键词 Directory of , 例如:
// Directory of D:\ZZ\C\example
// D:\ZZ\C\example 就是当前路径
return 0;
}
#include <windows.h>
#include <string>
#include <iostream>
using namespace std;;
string ExePath() {
char buffer[MAX_PATH];
GetModuleFileName( NULL, buffer, MAX_PATH );
string::size_type pos = string( buffer ).find_last_of( "\\/" );
return string( buffer ).substr( 0, pos);
}
int main() {
cout << "my directory is " << ExePath() << "\n";
}
=====
c 程序,也许可以通过char *argv[] 寻找,
int main(int argc, char *argv[]){。。。。}
argv[0] 含程序名,可以尝试 用 system() 调 DOS 命令查找:
#include<stdio.h>
int main(int argc, char *argv[])
{
FILE *fp;
char s[80];
sprintf(s,"DIR %s.c > a.log",argv[0]);
system(s); // 执行后,屏幕输出 存入 a.log 文本文件
fp =fopen("a.log","r"); // 打开文件
// 这里 一行一行地读文件,找到 关键词 Directory of , 例如:
// Directory of D:\ZZ\C\example
// D:\ZZ\C\example 就是当前路径
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯