您好,登錄后才能下訂單哦!
庫函數-文件訪問
上一個博文主要講了系統調用,接下來就開始庫函數調用講解。
特點:C庫函數是獨立與操作系統平臺存在的,無論在nunixlinux,還是windows操作系統下庫函數調用都是一樣的。
一、打開文件
FILE*fopen(cons char*filename,const char*mode)
Filename:
打開的文件名;
Mode:
打開的模式;
常見的打開模式:
R rb 只讀方式打開
W wb 只寫方式打開,文件不存在,進行創建.
A,ab 追加方式打開,如果文件不存在,則創建文件
W+,w+b,wh+只讀方式打開,如果文件不存在,則創建文件
A+ ,a+b ab+ 讀和追加的方式打開。如果文件不存在,則創建改文件
庫函數的創建和打開
b用于區分二進制文件
二、庫函數讀
Size_t fread(void*ptr,size_t size,size_t n,FILE*stream)
功能:
從stream指向的文件中讀取n個字段,每個字段為size字節,并將讀取的數據放入ptr
所指向的字符數組中,返回實際已讀的字節數。
三、庫函數寫
Size_t fwrite(void*ptr,size_t size,size_t n,FILE*stream)
功能:
從緩沖區ptr所指向的數組中把n個字段寫到stream指向的文件中,每個字段長為size
的字節,返回實際寫入的字段數。
四、庫函數讀字符
從指定的文件中都一個字符
#include<stdio.h>
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); //獲取一個字符,并把字符賦值微微ch
wwhile(ch!=EOF)
{
putchar(ch); //打印該字符
ch=fget(fp); //繼續獲取改字符
}
fclose(fp);
}
五、庫函數寫字符
#include<stdio.h>
main ()
{
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:\n”);
ch=getchar(); //獲取一個字符,并把字符賦值微微ch
while(ch!=’\n’)
{
fputch(ch,fp); //寫字符
ch=getchar(); //繼續獲取如輸入的字符
}
Print(“\n”);
fclose(fp);
}
六、庫文件-格式化讀
Fscanf(FILE*stream,char *format[,argument.....] )
#include <stdlib.h>
#include<process.h>
Void main(void)
{
Int i=10;
Double fp=1.5;
Char s[]=”this is a string”;
Char c =’\n’;
Stream=fopen(“fprintf.out”,”w”); //打開以后執行的操作都在函數里面了
Fprintf(stream,”%s%c”,s,c); //第一個寫入的是字符串,第二個是char型
Fprintf(stream,”%d\n”,i);
Fprintf(stream,”%f\n”,fp); //浮點型額類型
Fclose(steam); //關閉指向文件寫入
}
第七、庫函數定位
Int fseek(FILE*stream, long offset,int whence)
Whence:
SEEK_set 從文件頭開始搜索
SEEK_CUR從當前的位置搜索
SEEK_END 從文件結束處開始搜索
第八、路徑獲取
在編寫程序的時候,有時候需要知道路徑。
Char *getcwd(char*buffer,size_t size)
上面定義一個size大小的buffer,getcwd會把當前的路徑名copy
到buffer中,如果buffer太小,函數會返回-1.
路徑獲取實現:
#include<unistd.h>
Main()
{
Char buf[80];
Getcwd(buf,sizeof(buf));
Printf(“current working dirctory :%sn”,buf);
}
第九、創建目錄
#include<sys/stat.h>
Int mkdir (char*dir, int mode)
功能:
創建目錄
返回值:表示成功,-1表示出錯。
在和linuxshell下的操作命令一樣
#mkdir hello Scripts
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。