C語言文件輸入和輸出操作的學(xué)習(xí)心得(一)

今天學(xué)習(xí)了C語言文件輸入輸出操作的相關(guān)知識离斩。在此磅叛,向大家分享一下學(xué)習(xí)心得。

fopen()

首先介紹fopen()這個函數(shù)皆辽,以下內(nèi)容為fopen()函數(shù)的詳解:
頭文件:#include <stdio.h>
fopen()是一個常用的函數(shù)柑蛇,用來以指定的方式打開文件。
其原型為: FILE * fopen(const char * path, const char * mode);
【參數(shù)解釋】
path:包含了路徑的文件名驱闷,文件的路徑應(yīng)寫成形如C:\文件夾1\文件夾2\文件.txt耻台,或者/文件夾1/文件夾2/文件.txt的形式。
mode:打開文件的方式
以下是幾種常見的方式:

r:以只讀方式打開文件空另,該文件必須存在盆耽。
r+:以讀/寫方式打開文件,該文件必須存在。
rb+:以讀/寫方式打開一個二進制文件摄杂,只允許讀/寫數(shù)據(jù)坝咐。
rt+:以讀/寫方式打開一個文本文件,允許讀和寫析恢。w打開只寫文件墨坚,若文件存在則長度清為0,即該文件內(nèi)容消失映挂,若不存在則創(chuàng)建該文件泽篮。
w+:打開可讀/寫文件,若文件存在則文件長度清為零柑船,即該文件內(nèi)容會消失咪辱。若文件不存在則建立該文件。
a:以附加的方式打開只寫文件椎组。若文件不存在油狂,則會建立該文件,如果文件存在寸癌,寫入的數(shù)據(jù)會被加到文件尾专筷,即文件原先的內(nèi)容會被保留(EOF符保留)。
a+:以附加方式打開可讀/寫的文件蒸苇。若文件不存在磷蛹,則會建立該文件,如果文件存在溪烤,則寫入的數(shù)據(jù)會被加到文件尾后味咳,即文件原先的內(nèi)容會被保留(原來的EOF符不保留)。
wb:以只寫方式打開或新建一個二進制文件檬嘀,只允許寫數(shù)據(jù)槽驶。
wb+:以讀/寫方式打開或建立一個二進制文件,允許讀和寫鸳兽。
wt+:以讀/寫方式打開或建立一個文本文件掂铐,允許讀寫。
at+:以讀/寫方式打開一個文本文件揍异,允許讀或在文本末追加數(shù)據(jù)全陨。
ab+:以讀/寫方式打開一個二進制文件,允許讀或在文件末追加數(shù)據(jù)衷掷。

fclose()

與fopen()對應(yīng)的是fclose()辱姨,fclose()用來關(guān)閉先前一個fopen()打開的文件. 此動作會讓緩沖區(qū)內(nèi)的數(shù)據(jù)寫入文件中, 并釋放系統(tǒng)所提供的文件資源.
頭文件:#include <stdio.h>
定義函數(shù):int fclose(FILE * stream);
【返回值】
若關(guān)文件動作成功則返回0, 有錯誤發(fā)生時則返回EOF 并把錯誤代碼存到errno.

fwrite()

接下來介紹fwrite()函數(shù),fwrite()函數(shù)的作用是向文件流寫入數(shù)據(jù)戚嗅。

其原型為:fwrite(void * buffer, size, count, FILE * stream);
【參數(shù)解釋】
buffer:數(shù)據(jù)的原地址雨涛,可以通俗理解成需要寫入的內(nèi)容枢舶。
size:每個單元的字節(jié)數(shù)
count:單元的個數(shù)
stream:文件流的指針
注意:一開始接觸這個函數(shù)時很多人不太明白size和count的取值該如何決定。如果所需要輸入的字節(jié)數(shù)為24镜悉,那么size的值可以為4祟辟,count的值可以為6。同樣侣肄,size可以為8旧困,count可以為3〖诠總之吼具,這兩個參數(shù)的乘積最好為所需要輸入的字節(jié)數(shù),若小于這個數(shù)會造成輸入缺失矩距,若多于這個數(shù)會出現(xiàn)不必要的亂碼拗盒。
【返回值】
返回成功寫入的單元個數(shù)。如果小于count锥债,則說明發(fā)生了錯誤陡蝇,文件流錯誤標(biāo)志位將被設(shè)置,隨后可以通過ferror()函數(shù)判斷哮肚。

實例

以下將以一個簡單實例演示如何向文件輸入數(shù)據(jù)登夫,包含了fopen()和fwrite()的用法。

include <stdio.h>
int main()
{
   FILE *pFile;//定義文件指針
   char str[]="What a wonderful world!";//需要輸入的數(shù)據(jù)
   int size = sizeof(str);//用sizeof()函數(shù)得出數(shù)據(jù)的字節(jié)數(shù)
   pFile = fopen("testxt", "w");
   if(pFile == NULL)//判斷指針是否為空
   {
       printf("can not open the file");
       fclose(pFile);
       return 0;
   }
   fwrite(str,1,size,pFile);
   fclose(pFile);
   return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末允趟,一起剝皮案震驚了整個濱河市恼策,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌潮剪,老刑警劉巖涣楷,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異抗碰,居然都是意外死亡狮斗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門改含,熙熙樓的掌柜王于貴愁眉苦臉地迎上來情龄,“玉大人,你說我怎么就攤上這事捍壤。” “怎么了鞍爱?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵鹃觉,是天一觀的道長。 經(jīng)常有香客問我睹逃,道長盗扇,這世上最難降的妖魔是什么祷肯? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮疗隶,結(jié)果婚禮上佑笋,老公的妹妹穿的比我還像新娘。我一直安慰自己斑鼻,他們只是感情好蒋纬,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坚弱,像睡著了一般蜀备。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上荒叶,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天碾阁,我揣著相機與錄音,去河邊找鬼些楣。 笑死脂凶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的愁茁。 我是一名探鬼主播蚕钦,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼埋市!你這毒婦竟也來了冠桃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤道宅,失蹤者是張志新(化名)和其女友劉穎食听,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體污茵,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡樱报,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了泞当。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迹蛤。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖襟士,靈堂內(nèi)的尸體忽然破棺而出盗飒,到底是詐尸還是另有隱情,我是刑警寧澤陋桂,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布逆趣,位于F島的核電站,受9級特大地震影響嗜历,放射性物質(zhì)發(fā)生泄漏宣渗。R本人自食惡果不足惜抖所,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望痕囱。 院中可真熱鬧田轧,春花似錦、人聲如沸鞍恢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽有序。三九已至抹腿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間旭寿,已是汗流浹背警绩。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盅称,地道東北人肩祥。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像缩膝,于是被迫代替她去往敵國和親混狠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • C/C++輸入輸出流總結(jié) 前兩天寫C++實習(xí)作業(yè)疾层,突然發(fā)現(xiàn)I/O是那么的陌生将饺,打了好長時間的文件都沒有打開,今天終...
    LuckTime閱讀 1,738評論 0 6
  • Linux(C/C++)下的文件操作open、fopen與freopen open是linux下的底層系統(tǒng)調(diào)用函數(shù)...
    木兮or涼城閱讀 4,880評論 0 1
  • 簡書連載風(fēng)云錄冷面桃花緣目錄在此湖饱,請戳這里掖蛤!想看薔薇其他類型的小說,可以點擊這里喲<<<薔薇小說文集在此井厌,請戳 文...
    薔薇下的陽光閱讀 404評論 0 9
  • 江山晴好蚓庭,幸而今我仍年少〗銎停可憐喜上枝頭鳥器赞,碧玉結(jié)簪,屋后新來笑墓拜。 獨倚蘭舟行世道拳魁,開心便有青青草。海棠易落春容老撮弧,...
    碩果蕾蕾閱讀 322評論 10 18
  • 1 穿過風(fēng)車的枝叉 飛過一層一層山 留下怪異的嘶叫 分岔路口 誰知道往哪來 拐不到的光明 看不到的黯然 混混而過 ...
    一念別塵閱讀 213評論 0 2