C语言写入并建立文件路径

C语言写入并建立文件路径,第1张

用于保存文件的目录要事先存在!否则会输出错误信息!

//---------------------------------------------------------------------------

#include

#include

#define

fppath

"c:\\vcf\\"

/*文件的保存目录,末尾的斜杠不可省略*/

int

main(void)

{

file

*fp

char

fn[255]

int

i

for

(i

=

1

i<=1000

i++)

{

sprintf(fn,"%s%d.vcf",fppath,i)

fp=fopen(fn,"w")

if

(!fp)

{

fprintf(stderr,"file

error(%s)\n",fn)

continue

}

fputs("begin:vcard\nversion:2.1",fp)

fprintf(fp,"ncharset=utf-8encoding=quoted-printable:%d\n",i)

fprintf(fp,"telcell:%d\n",i)

fputs("end:vcard",fp)

fclose(fp)

}

return

0

}

//---------------------------------------------------------------------------

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

windows下文件路径是用\分隔的,比如C:\Windows\System32\就是一个标准的windows路径。

在C语言中,文件路径会被写作字符串形式,但是由于C语言的字符串规则中,\字符是转义字符的引导,所以直接写

"C:\Windows\System32\"

会出错。而字符'\\'才是表示\。

于是在写路径的时候,就必须是

"C:\\Windows\\System32\\"

即,写成单独的\的,是windows的标准形式,而写成\\的,才是C语言中用到的形式。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11538299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存