亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言文件操作 fopen, fclose, mkdir詳解

2020-01-26 14:40:58
字體:
來源:轉載
供稿:網友

1.建文件夾

int _mkdir(const char *path,mode_t mode);
函數名: _mkdir
功 能: 建立一個目錄
用 法: int _mkdir( const char *dirname );
頭文件庫:direct.h
返回值:創建一個目錄,若成功則返回0,否則返回-1

=====================================================

2.打開文件fopen()

函數功能: 打開一個文件
函數原型:FILE * fopen(const char * path,const char * mode);
所需庫: <stdio.h>
返回值: 文件順利打開后,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,并把錯誤代碼存在errno 中。

一般而言,打開文件后會作一些文件讀取或寫入的動作,若打開文件失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()后作錯誤判斷及處理。

if((fin = fopen(“a.txt”,”r”)) == NULL)printf(“Open file error./n”);

參數說明:
參數path字符串包含欲打開的文件路徑及文件名,參數mode字符串則代表著流形態。
mode有下列幾種形態字符串:  (常用的就前幾個,后面用到了再查,不用記)
r 以只讀方式打開文件,該文件必須存在。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)

rb 為輸入打開一個二進制文件。
wb 只寫打開或新建一個二進制文件;只允許寫數據。
ab 向二進制文件尾添加數據

r+ 以可讀寫方式打開文件,該文件必須存在。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾后,即文件原先的內容會被保留。 (原來的EOF符不保留)

rb+ 讀寫打開一個二進制文件,只允許讀數據。
wb+ 讀寫打開或建立一個二進制文件,允許讀和寫。
ab+ 讀寫打開一個二進制文件,允許讀或在文件末追加數據。

rt+ 讀寫打開一個文本文件,允許讀和寫。
wt+ 讀寫打開或著建立一個文本文件;允許讀寫。
at+ 讀寫打開一個文本文件,允許讀或在文本末追加數據。
上述的形態字符串都可以再加一個b字符,如rb、w+b或ab+等組合,加入b 字符用來告訴函數庫打開的文件為二進制文件,而非純文字文件。
不過在POSIX系統,包含Linux都會忽略該字符。由fopen()所建立的新文件會具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)權限,此文件權限也會參考umask 值。
有些C編譯系統可能不完全提供所有這些功能,有的C版本不用”r+”,”w+”,”a+”,而用”rw”,”wr”,”ar”等,讀者注意所用系統的規定。

==========================================================

3.關閉文件 fclose()

在使用完一個文件后應該關閉它,以防止它再誤用,關閉就是指文件指針變量不指向該文件,也就是文件指針變量與文件脫鉤,此后不能再通過該指針對原來與其相聯系的文件進行讀寫操作。除非再次打開,使該指針變量重新指向該文件。

用 fclose 函數關閉文件,fclose 函數調用的一般形式為

fclose(文件指針);

例如:

fclose(fp);

應該養成在程序終止之前關閉所有文件的習慣,如果不關閉文件將丟失數據。因為如前所述,在向文件寫數據時,是先將數據輸到緩沖區,待緩沖區充滿后才正式輸出給文件,如果當數據未充滿緩沖區,而程序結束運行,就會將緩沖區中的數據丟失,用 fclose 函數關閉文件,可以避免這個問題,它先把緩沖區中的數據輸出到磁盤文件,然后才釋放文件指針變量。

fclose 函數也帶回一個值,當順利地執行了關閉操作,則返回值為 0 ,否則返回 EOF (-1) ??梢杂?ferror 函數來測試。
==============================================================
下面用一個程序來說明上面幾個函數用法:

將a.txt拷貝到/test目錄下,名字也為a.txt

C++

/** * Author: Gneveek * Data: 2011-10-6 * Descripition: Clock Chen's Homework : File operation #1 * 一、將a.txt拷貝到/test目錄下,名字也為a.txt */ #include <stdio.h>#include <direct.h> //用 _mkdir()創建一個文件夾(目錄) int main(){ _mkdir("test");  char c; FILE *fin, *fout; if((fin = fopen("a.txt","r")) == NULL) printf("I'm so sorry,Open file error./n"); if((fout = fopen("test//a.txt","w")) == NULL) //以 w 方式,只能用于往文件中寫,如果不存在,則以指定的文件名新建一個文件 printf("I'm so sorry,Open file error./n");  while((c = fgetc(fin)) != EOF) fputc(c,fout);   fclose(fin); fclose(fout); return 0;} 

================================================================

4.判斷文件是否存在和是否可讀可寫

int access(const char *pathname,int mode);

pathname:是文件名稱
mode是我們要判斷的屬性.可以取以下值或者是他們的組合:
R_OK文件可以讀
W_OK文件可以寫
X_OK文件可以執行
F_OK文件存在.

當我們測試成功時,函數返回0,否則如果有一個條件不符時,返回-1.

用一個程序實例來認識這個函數:

輸入一個文件名(在命令行中輸入),判斷該文件是否存在,并且可讀,不存在提示不存在,不可讀提示不可讀,如果存在并可讀,則在當前目錄下,創建一個目錄test,并將該文件拷貝到test中

C++

/** * Author: Gneveek * Data: 2011-10-6 * Descripition: Clock Chen's Homework : File operation #2 *二、輸入一個文件名(在命令行中輸入),判斷該文件是否存在,并且可讀, *不存在提示不存在,不可讀提示不可讀,如果存在并可讀, *則在當前目錄下,創建一個目錄test,并將該文件拷貝到test中 */ #include <stdio.h>#include <io.h>#include <direct.h> #include <string.h> int main(){ FILE *fin, *fout; char filename[256];  char pathname[256] = "test//";   scanf("%s",filename); if(access(filename,F_OK) == -1) //判斷存在與否  printf("This file does not exist!/n"); else if(access(filename,R_OK) == -1) //如果存在,判斷可讀否  printf("Cann't Read!/n"); else               //到這里,說明即存在又可讀  { char c; _mkdir("test");   strcat(pathname,filename);    fin = fopen(filename,"r");  fout = fopen(pathname,"w");  while((c = fgetc(fin)) != EOF)  fputc(c,fout); } return 0;}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区三区视频观看| 国产视频精品va久久久久久| 欧美一级片在线播放| 国产欧美日韩丝袜精品一区| 亚洲韩国青草视频| 91欧美视频网站| 亚洲美女喷白浆| 欧美高跟鞋交xxxxhd| 亚洲女人被黑人巨大进入al| 日韩亚洲国产中文字幕| 日韩激情在线视频| 欧美日韩国产一中文字不卡| 国产精品人成电影在线观看| 久久免费视频网站| 色噜噜国产精品视频一区二区| 精品国产一区二区三区久久狼5月| 日韩有码在线观看| 欧美激情一区二区久久久| 精品久久久999| 日韩在线高清视频| 欧美xxxx综合视频| 日韩免费精品视频| 亚洲aⅴ男人的天堂在线观看| 欧美与欧洲交xxxx免费观看| 欧美精品在线网站| 欧美丝袜第一区| 亚洲色图在线观看| 中文亚洲视频在线| 国产精品久久久久av| 日韩av综合网| 欧美极度另类性三渗透| 国产欧美日韩91| 国产精品久久视频| 北条麻妃一区二区三区中文字幕| 88国产精品欧美一区二区三区| 国产精品精品国产| 久久久久久国产免费| 一本色道久久综合亚洲精品小说| 国产精品一区二区av影院萌芽| 亚洲欧美日韩中文视频| 成人午夜激情免费视频| 欧美性少妇18aaaa视频| 亚洲人精选亚洲人成在线| 91精品国产色综合| 在线观看国产精品91| 中文字幕在线日韩| 亚洲在线免费看| 中文字幕日韩欧美在线| 亚洲福利在线视频| 国产精品久久久久久五月尺| 在线观看欧美日韩国产| 国产一区二区三区网站| 久久久久这里只有精品| 亚洲视屏在线播放| 日韩av电影中文字幕| 精品国产欧美一区二区三区成人| 久久人人爽人人爽人人片av高清| 国产成人啪精品视频免费网| 久久av在线播放| 日韩大片免费观看视频播放| 日韩毛片在线观看| 国产精品久久久久av| 亚洲精品国产精品乱码不99按摩| 国产精品一区二区三区毛片淫片| 日本成人免费在线| 欧美精品国产精品日韩精品| 亚洲色图18p| 高跟丝袜一区二区三区| 国产精品69av| 亚洲女同精品视频| 久久综合伊人77777蜜臀| 亚洲色图av在线| 狠狠久久亚洲欧美专区| 欧美激情性做爰免费视频| 亚洲福利视频久久| 国产激情999| 日韩欧美在线视频免费观看| 色视频www在线播放国产成人| 日韩综合中文字幕| 国产91在线播放九色快色| 国产精自产拍久久久久久蜜| 亚洲精品v天堂中文字幕| 国产精品香蕉av| 日韩女在线观看| 欧美大片在线看| 日韩中文在线中文网三级| 亚洲国产成人精品久久久国产成人一区| 亚洲热线99精品视频| 欧美裸体视频网站| 98精品国产自产在线观看| 久久理论片午夜琪琪电影网| 久久综合国产精品台湾中文娱乐网| 国内精品久久久久久中文字幕| 亚洲女人天堂网| 亚洲欧美日本精品| 668精品在线视频| 亚洲系列中文字幕| 九九九热精品免费视频观看网站| 国产午夜精品视频免费不卡69堂| 91午夜在线播放| 怡红院精品视频| 97国产真实伦对白精彩视频8| 久久久久久一区二区三区| 日韩av影院在线观看| 精品美女久久久久久免费| 欧美精品久久久久久久久久| www.色综合| 国产欧美一区二区三区久久| 亚洲第一免费播放区| 91免费国产网站| 精品中文字幕在线观看| 日韩av手机在线观看| 欧美肥婆姓交大片| 欧美日本中文字幕| 久久精品免费播放| 日韩精品中文字幕久久臀| …久久精品99久久香蕉国产| 久久久久国产精品免费| 欧美日韩美女在线观看| 欧洲精品在线视频| 亚洲男人第一网站| 欧美激情a在线| 日本一区二区不卡| 91wwwcom在线观看| 亚洲小视频在线观看| 欧美一级bbbbb性bbbb喷潮片| 97在线观看免费高清| 欧美一区二区大胆人体摄影专业网站| 九九热99久久久国产盗摄| 久久免费视频网| 欧美日韩激情网| 色悠悠久久久久| 欧美伦理91i| 国产在线观看91精品一区| 久久这里有精品视频| 国产欧美一区二区白浆黑人| 日韩中文字幕精品视频| 国内精品免费午夜毛片| 中文字幕一区二区三区电影| 亚洲国产精品久久久久秋霞不卡| 97超级碰碰人国产在线观看| 精品女厕一区二区三区| 亚洲自拍在线观看| 日韩在线观看电影| 日韩欧美在线国产| 欧美午夜影院在线视频| 国产性猛交xxxx免费看久久| 亚洲欧美日韩另类| 久久偷看各类女兵18女厕嘘嘘| 精品日韩美女的视频高清| 国产乱人伦真实精品视频| 琪琪亚洲精品午夜在线| 亚洲午夜精品久久久久久久久久久久| 精品一区二区三区电影| 国内精品久久久久影院 日本资源| 国产一区二区久久精品| 菠萝蜜影院一区二区免费| 亚洲一二三在线| 成人www视频在线观看| 日本中文字幕成人| 欧美大片在线免费观看| 国产美女直播视频一区| 日韩国产高清污视频在线观看| 2023亚洲男人天堂|