// 2.11.cpp : 定义控制台应用程序的入口点。
//
#include <windows.h>
#include <string.h>
#include<stdio.h>
const unsigned int MAX_LENGTH_OF_CMD = 300;
const char* DEFAULT_FILE_NAME = "temp.txt";
/*
strDefaultFileFullPath要确保足够的存储空间,建议为MAX_PATH
*/
int GetDefaultFileFullPath(char *strDefaultFileFullPath, const char *strDefaultFileName, const char *strArgv0)
{
int i = strlen(strArgv0) - 1;
printf("%d\n",i);
while(i >= 0)
{
if(strArgv0[i] == '\\')
break;
i--;
}
if(i < 0)
{
strcpy(strDefaultFileFullPath, strDefaultFileName);
printf("%d ",i);
}
else
{
strcpy(strDefaultFileFullPath, strArgv0);
strcpy(strDefaultFileFullPath + i + 1, strDefaultFileName);
printf("%d ",i);
}
return 1;
}
int main(int argc, char* argv[])
{
char DefaultFileFullPath[MAX_PATH];
GetDefaultFileFullPath(DefaultFileFullPath, DEFAULT_FILE_NAME,argv[0]);
printf("%s\n", DefaultFileFullPath);
getchar();
return 0;
}
注意两个问题,是建立在于输入的文件地址同目录下(此时默认与exe同一目录,因为采用的是argv[0])
且'\\'代表 \,若,查询到没有'\\',则表明没有二级目录。