用C/C++编写一个文件路径
答案:5 悬赏:60 手机版
解决时间 2021-03-22 23:59
- 提问者网友:姑娘长的好罪过
- 2021-03-22 11:27
用C/C++编写一个文件路径
最佳答案
- 五星知识达人网友:胯下狙击手
- 2021-03-22 12:46
c从完整路径分离 路径名,文件名,扩展名
void splitname(const char *szfullfilename, char *szpathname, char *szfilename, char *szextname);
szfullfilename:完整文件名
szpathname:以 \ 结尾的路径名
szfilename:文件名
szextname:扩展名
#include "stdio.h"
#include "conio.h"
void splitname(const char *szfullfilename, char *szpathname, char *szfilename, char *szextname);
int main(void)
{
char szfullfilename[255] = "C:\\My Documents\\Software Test 1.00.doc";
char szpathname[255];
char szfilename[255];
char szextname[255];
splitname(szfullfilename, szpathname, szfilename, szextname);
printf("%s\n", szfullfilename);
printf("path: %s\n", szpathname);
printf("file: %s\n", szfilename);
printf("ext: %s\n", szextname);
}
void splitname(const char *szfullfilename, char *szpathname, char *szfilename, char *szextname)
{
int i, j;
i = 0;
while (szfullfilename[i] != '\0')
i++;
while (szfullfilename[i] != '.')
i--;
j = 0;
i++;
while((szextname[j] = szfullfilename[i]) != '\0')
{
i++;
j++;
}
i -= j;
while (szfullfilename[i] != '\\')
i--;
for (j = 0; j <= i; j++)
{
szpathname[j] = szfullfilename[j];
}
szpathname[j] = '\0';
j = 0;
i++;
while((szfilename[j] = szfullfilename[i]) != '\0')
{
i++;
j++;
}
}
运行结果:
C:\My Documents\Software Test 1.00.doc
path: C:\My Documents\
file: Software Test 1.00.doc
ext: doc
void splitname(const char *szfullfilename, char *szpathname, char *szfilename, char *szextname);
szfullfilename:完整文件名
szpathname:以 \ 结尾的路径名
szfilename:文件名
szextname:扩展名
#include "stdio.h"
#include "conio.h"
void splitname(const char *szfullfilename, char *szpathname, char *szfilename, char *szextname);
int main(void)
{
char szfullfilename[255] = "C:\\My Documents\\Software Test 1.00.doc";
char szpathname[255];
char szfilename[255];
char szextname[255];
splitname(szfullfilename, szpathname, szfilename, szextname);
printf("%s\n", szfullfilename);
printf("path: %s\n", szpathname);
printf("file: %s\n", szfilename);
printf("ext: %s\n", szextname);
}
void splitname(const char *szfullfilename, char *szpathname, char *szfilename, char *szextname)
{
int i, j;
i = 0;
while (szfullfilename[i] != '\0')
i++;
while (szfullfilename[i] != '.')
i--;
j = 0;
i++;
while((szextname[j] = szfullfilename[i]) != '\0')
{
i++;
j++;
}
i -= j;
while (szfullfilename[i] != '\\')
i--;
for (j = 0; j <= i; j++)
{
szpathname[j] = szfullfilename[j];
}
szpathname[j] = '\0';
j = 0;
i++;
while((szfilename[j] = szfullfilename[i]) != '\0')
{
i++;
j++;
}
}
运行结果:
C:\My Documents\Software Test 1.00.doc
path: C:\My Documents\
file: Software Test 1.00.doc
ext: doc
全部回答
- 1楼网友:孤独的牧羊人
- 2021-03-22 17:12
program in C:
#include
#include
void main()
{
char s[]="C:\\MyDocuments\\Software\\Test 1.00.doc";
char file_name[20],ext_name[20],dir[80];
int L,i,j,k;
L = strlen(s);
for (i=0;i if (s[i]=='\\') j=i;
if (s[i]=='.') k=i;
};
dir[j]='\0';
for (i=0;i for (i=j+1;i file_name[k-j]='\0';
for (i=k+1;i
printf("DIR -- %s\n",dir);
printf("File Name -- %s\n",file_name);
printf("Ext Name -- %s\n",ext_name);
system("pause");
}
#include
#include
void main()
{
char s[]="C:\\MyDocuments\\Software\\Test 1.00.doc";
char file_name[20],ext_name[20],dir[80];
int L,i,j,k;
L = strlen(s);
for (i=0;i
if (s[i]=='.') k=i;
};
dir[j]='\0';
for (i=0;i
for (i=k+1;i
printf("DIR -- %s\n",dir);
printf("File Name -- %s\n",file_name);
printf("Ext Name -- %s\n",ext_name);
system("pause");
}
- 2楼网友:执傲
- 2021-03-22 14:03
C#实现也就3句话。
- 3楼网友:时间的尘埃
- 2021-03-22 13:39
system("md C:\MyDocuments");
然后
ofstream fout = fout.open("C:\\MyDocuments\\Software Test1.00.txt");
就可以了
不明白可以加我百度HI。
把字符串保存到一个string文件中。
然后用while分段循环读取,以'\0'为结束点。
在在这个循环中内嵌一个循环。
以‘\’为条件,并保存这个字符的结束点。
然后在跟据外部循环判断每个目录。
在C/C++中实现是有点麻烦。在C#中比较简单实现。
不明白的加我百度HI吧。
然后
ofstream fout = fout.open("C:\\MyDocuments\\Software Test1.00.txt");
就可以了
不明白可以加我百度HI。
把字符串保存到一个string文件中。
然后用while分段循环读取,以'\0'为结束点。
在在这个循环中内嵌一个循环。
以‘\’为条件,并保存这个字符的结束点。
然后在跟据外部循环判断每个目录。
在C/C++中实现是有点麻烦。在C#中比较简单实现。
不明白的加我百度HI吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯