當前位置:首頁 » 編程語言 » c語言filepath含義
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言filepath含義

發布時間: 2023-03-06 03:07:22

c語言保存文件到指定的路徑和文件名

fp=fopen(filename,"wb");
里的filename就表示了文件的路徑及文件名,所以要把輸入的文件名和文件路徑拼接起來,計算出這個filename
最好過濾一下別讓路徑和文件名中有非法字元,比如:\/+<>什麼的。
scanf也限制一下長度。
scanf("%19s",filename);
scanf("%19s",path);
參考如下:
#include <stdio.h>
#include <stdlib.h>
int 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語言讀文件時,如何說明是當前目錄

這個如果是在c語言中是根據你讀文件那個函數里定義的,如果那裡你用絕對地址那你放那都可以,如果用相對地址就放到你c編譯器的根目錄下面,或者子目錄,但是子目錄需要在裡面指出

⑶ 求c語言讀取寫入文本文件的函數實現

#include<stdio.h>
#include<string.h>//strlen()
#include<malloc.h>//malloc()
intFileCreate(char*filePath,char*fileContext)
{
FILE*fp;
fp=fopen(filePath,"w+");
if(fp)
{
fwrite(fileContext,strlen(fileContext),1,fp);
fclose(fp);
return0;
}
return1;
}
char*FileRead(char*filePath)
{
FILE*fp;
longintfsize;
char*fileContext;
fp=fopen(filePath,"r");
if(fp)
{
fseek(fp,0,SEEK_END);
fsize=ftell(fp);
rewind(fp);
fileContext=(char*)malloc(fsize+1);//注意釋放內存
fread(fileContext,fsize,1,fp);
*(fileContext+fsize)='';
fclose(fp);
returnfileContext;
}
returnNULL;
}

intmain()//測試
{
char*fileContext;
char*filePath="d:\111.txt";
FileCreate(filePath,"abc123");
fileContext=FileRead(filePath);
printf("%s",fileContext);
free(fileContext);//釋放
return0;
}

⑷ c語言自定義文件名

1.用C語言自定義文件名,涉及到的相關知識如下:

_finddata_t結構體:
struct _finddata_t {
unsigned attrib ;
time_t time_create ;
time_t time_access ;
time_t time_write ;
_fsize_t size ;
char name [260] ;
}

rename函數:
功能描述:
改變文件的名稱或者位置,如果目標已存在,將被自動覆蓋。
用法:
#include <stdio.h>
int rename(const char *oldpath, const char *newpath);
參數:
oldpath:舊文件名。
newpath:新文件名或者新位置。

返回說明:
成功執行時,返回0。失敗返回-1,errno被設為以下的某個值
EACCES:權能不足
EBUSY:參數oldpath或者newpath代表的是目錄,而且一些進程正在使用它們
EFAULT: 內存空間不可訪問
EINVAL:參數無效
EISDIR:newpath是一個現存的目錄,而oldpath不是目錄
ELOOP :路徑解析的過程中存在太多的符號連接
EMLINK:目錄超出允許的最大連接數
ENAMETOOLONG:路徑名超出可允許的長度
ENOENT:路徑名部分內容表示的目錄不存在
ENOMEM: 核心內存不足
ENOSPC: 磁碟配額限制或空間不足
ENOTDIR:路徑名的部分內容不是目錄
EPERM : 包含路徑名的文件系統不支持建立目錄
EROFS:文件系統只讀
ENOTEMPTY:newpath是一個非空的目錄,除了. 和 ..以外,還包含其它入口。
EEXIST:同上
EXDEV:oldpath和newpath不處於同一文件系統

2.用C語言自定義文件名的代碼常式如下:

#include<stdio.h>
#include<io.h>
intmain(intargv,char*argc)
{
longhandle;
inti=0,j=0;
struct_finddata_tfileinfo;
charfilePT[256]={''};
charfileType[20]={'a',''};
charfilePath[256]={''};
charnewName[256]={''};
charoldName[256]={''};

printf("InputtherenamefilePath: ");
scanf("%s",filePath);
fflush(stdin);
printf("InputtherenamefileType: ");
scanf("%s",fileType);
fflush(stdin);
sprintf(filePT,"%s\*%s",filePath,fileType);

handle=_findfirst(filePT,&fileinfo);
if(-1==handle)
{
printf("_findfirst()error ");
getchar();
return(-1);
}
i=1000;
do{
sprintf(oldName,"%s\%s",filePath,fileinfo.name);//全部路徑
sprintf(newName,"%s\%d%s",filePath,i++,fileType);
j=rename(oldName,newName);
if(j!=0)
{
printf("rename()error ");
break;
}
}while(!_findnext(handle,&fileinfo));
_findclose(handle);
printf("ProgramEnd ");
getchar();
return(0);
}