庫(kù)函數(shù)-文件訪問(wèn)
興海網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),興海網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為興海1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的興海做網(wǎng)站的公司定做!
上一個(gè)博文主要講了系統(tǒng)調(diào)用,接下來(lái)就開(kāi)始庫(kù)函數(shù)調(diào)用講解。
特點(diǎn):C庫(kù)函數(shù)是獨(dú)立與操作系統(tǒng)平臺(tái)存在的,無(wú)論在nunixlinux,還是windows操作系統(tǒng)下庫(kù)函數(shù)調(diào)用都是一樣的。
一、打開(kāi)文件
FILE*fopen(cons char*filename,const char*mode)
Filename:
打開(kāi)的文件名;
Mode:
打開(kāi)的模式;
常見(jiàn)的打開(kāi)模式:
R rb 只讀方式打開(kāi)
W wb 只寫方式打開(kāi),文件不存在,進(jìn)行創(chuàng)建.
A,ab 追加方式打開(kāi),如果文件不存在,則創(chuàng)建文件
W+,w+b,wh+只讀方式打開(kāi),如果文件不存在,則創(chuàng)建文件
A+ ,a+b ab+讀和追加的方式打開(kāi)。如果文件不存在,則創(chuàng)建改文件
庫(kù)函數(shù)的創(chuàng)建和打開(kāi)
b用于區(qū)分二進(jìn)制文件
二、庫(kù)函數(shù)讀
Size_t fread(void*ptr,size_t size,size_t n,FILE*stream)
功能:
從stream指向的文件中讀取n個(gè)字段,每個(gè)字段為size字節(jié),并將讀取的數(shù)據(jù)放入ptr
所指向的字符數(shù)組中,返回實(shí)際已讀的字節(jié)數(shù)。
三、庫(kù)函數(shù)寫
Size_t fwrite(void*ptr,size_t size,size_t n,FILE*stream)
功能:
從緩沖區(qū)ptr所指向的數(shù)組中把n個(gè)字段寫到stream指向的文件中,每個(gè)字段長(zhǎng)為size
的字節(jié),返回實(shí)際寫入的字段數(shù)。
四、庫(kù)函數(shù)讀字符
從指定的文件中都一個(gè)字符
#include
main ()
{
FILE *fp;
char ch;
if((fp=fopen(“c1.txt”,”rt”)==NULL)
{
printf(“\nCANNOT open file strike any key exit”);
getch();
exit(1);
}
ch=fgetc(fp); //獲取一個(gè)字符,并把字符賦值微微ch
wwhile(ch!=EOF)
{
putchar(ch); //打印該字符
ch=fget(fp); //繼續(xù)獲取改字符
}
fclose(fp);
}
五、庫(kù)函數(shù)寫字符
#includemain ()
{
FILE *fp;
char ch;
if((fp=fopen(“c1.txt”,”wt+”)==NULL)
{
printf(“\nCANNOT open file strike any key exit”);
getch();
exit(1);
}
Printf(“input a string:”);
ch=getchar(); //獲取一個(gè)字符,并把字符賦值微微ch
while(ch!=’’)
{
fputch(ch,fp); //寫字符
ch=getchar(); //繼續(xù)獲取如輸入的字符
}
Print(“”);
fclose(fp);
}
六、庫(kù)文件-格式化讀
Fscanf(FILE*stream,char *format[,argument.....])
#include
#include
Void main(void)
{
Int i=10;
Double fp=1.5;
Char s[]=”this is a string”;
Char c =’’;
Stream=fopen(“fprintf.out”,”w”); //打開(kāi)以后執(zhí)行的操作都在函數(shù)里面了
Fprintf(stream,”%s%c”,s,c); //第一個(gè)寫入的是字符串,第二個(gè)是char型
Fprintf(stream,”%d”,i);
Fprintf(stream,”%f”,fp); //浮點(diǎn)型額類型
Fclose(steam); //關(guān)閉指向文件寫入
}
第七、庫(kù)函數(shù)定位
Int fseek(FILE*stream,long offset,int whence)
Whence:
SEEK_set 從文件頭開(kāi)始搜索
SEEK_CUR從當(dāng)前的位置搜索
SEEK_END 從文件結(jié)束處開(kāi)始搜索
第八、路徑獲取
在編寫程序的時(shí)候,有時(shí)候需要知道路徑。
Char *getcwd(char*buffer,size_t size)
上面定義一個(gè)size大小的buffer,getcwd會(huì)把當(dāng)前的路徑名copy
到buffer中,如果buffer太小,函數(shù)會(huì)返回-1.
路徑獲取實(shí)現(xiàn):
#include
Main()
{
Char buf[80];
Getcwd(buf,sizeof(buf));
Printf(“current working dirctory :%sn”,buf);
}
第九、創(chuàng)建目錄
#include
Int mkdir (char*dir,int mode)
功能:
創(chuàng)建目錄
返回值:表示成功,-1表示出錯(cuò)。
在和linuxshell下的操作命令一樣
#mkdir hello Scripts