ZKX's LAB

c 流类文件路径名 c语言去掉绝对路径,提取文件名。

2020-09-30知识16

怎样用C编程从路径中分离出一个文件名 声明一个足够长的名为fn的char型数组,调用库函数strrchr在含路径的全文件名中找到文件名前的'\\',将其后的文件名拷贝到fn中即可。举例代码如下:include\"stdafx.h\"/If the vc+6.0,with this line.include\"stdio.hinclude\"string.hint main(void){char fn[30],*p;char pathname[80]=\"e:\\\\1\\\\2\\\\abc.dat;上句假设以某种方式获得的全文件名在pathname中,\".\"中只是举例strcpy(fn,(p=strrchr(pathname,'\\\\'))?p+1:pathname);上句函数第2实参这样写以防止文件在当前目录下时因p=NULL而出错printf(\"%s\\n\",fn);打出来看看return 0;}

c语言刚才那里fopen里直接输入文件名路径要\\\\,为什么这样就可以用一个\\ fflush(stdin);gets(filename);putchar(10);if((fp=fopen(filename,r+))。NULL)在我电脑显示的路径。

c语言保存文件到指定的路径和文件名? fp=fopen(filename,\"wb\");里的filename就表示了文件的路径及文件名,所以要把输入的文件名和文件路径拼接起来,计算出这个filename最好过滤一下别让路径和文件名中有非法字符,比如:\\/什么的。scanf也限制一下长度。scanf(\"%19s\",filename);scanf(\"%19s\",path);参考如下:includeincludeint main(void){FILE*fp;char ch,filename[20],path[20],buffer[40];printf(\"Enter the file name:\");scanf(\"%s\",filename);printf(\"Enter the path:\");scanf(\"%s\",path);sprintf(buffer,\"%s\\\\%s\",path,filename);printf(\"\\nto end input,press Ctrl+Z in newline,then ENTER:\\n\");if((fp=fopen(buffer,\"wt+\"))=NULL){printf(\"no such path,\\nstrike any key exit。getch();exit(1);}while((ch=getchar())。1)ch=fputc(ch,fp);fclose(fp);printf(\"=\\n\\n\");printf(\"file path \\\"%s\\\"\\nfile name \\\"%s\\\":\\nand its content:\\n\",path,filename);fp=fopen(buffer,\"rt\");while((ch=fgetc(fp))。1)putchar(ch);fclose(fp);return 0;

C语言中数组元素可以作为文件的路径名的一部分吗 文件路径是名char 类型的数组,C语言的数组元素可能是任意类型,所以不经过某种转换是不行的。

#c语言#printf#fn#char函数#char

随机阅读

qrcode
访问手机版