在main函数的第二个参数里面,
保存着当前程序运行的目录
也就是argv[0]
main( int argc, char *argv[])
{
printf("%s ", argv[0] )
}
就是文件当前所在位置
不过需要注意的一点是
这个路径里面保存了当前文件的文件名
如果你只是需要路径的话还需要自己操作一下
main(int a,char *c[])
{
char s[100]
int i
//把路径保存到字符串s里
strcpy(s,c[0])
for(i=strlen(s)i>0 i--)
if( s[i] == '\\')
{
s[i]='\0'
break
}
//找到最后一个 \ 并删除之后的内容
//最后输出的s,就是当前文件的路径了
puts(s)
}
1、可以利用getenv函数来实现。在Linux系统中,home目录的定义是通过系统环境变量中的HOME变量值来确定的,在shell下可以通过
echo $HOME来查看。
而在C语言中,库函数getenv可以用作获取环境变量值。该函数位于stdlib.h, 原型为
char *getenv(char *name)
功能为获取名字为name的环境变量字符串。
所以,下面代码就可以获取到home目录名了:
2、例程:
char *home
home = getenv("HOME")
printf("the home path is %s\n", home)
int main(){
string s = "c:\\abc\\def\\text.txt"
int xie_index = s.find_last_of('\\') // 路径中最后一个\的位置
string file_dirname = s.substr(0, xie_index + 1)
string file_basename = s.substr(xie_index + 1, s.size())
cout <<file_dirname <<endl <<file_basename <<endl
}