<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          C語言文件讀寫操作

          共 1997字,需瀏覽 4分鐘

           ·

          2021-01-17 14:09

          前言

          上一章節(jié)主要講解結(jié)構(gòu)體內(nèi)存對齊問題,本章節(jié)主要講解C語言文件操作,全面解析C語言文件操作。

          C語言文件

          通常,文件用于在計算機(jī)中存儲用戶數(shù)據(jù)。換句話說,計算機(jī)使用文件存儲數(shù)據(jù)。我們可以如下定義:文件是存儲在輔助存儲器(如計算機(jī)的haddisk)中的數(shù)據(jù)的集合。

          C語言支持兩種類型的文件,它們?nèi)缦拢?/p>

          • 文本文件(或)ASCII文件

          • 二進(jìn)制文件

          文本文件(或)ASCII文件

          包含數(shù)字,字母和符號等數(shù)據(jù)的ASCII碼的文件稱為文本文件(或)ASCII文件。

          二進(jìn)制文件

          含字節(jié)(0和1)形式的數(shù)據(jù)的文件稱為二進(jìn)制文件。通常二進(jìn)制文件是文本文件的編譯版本。

          C語言文件操作

          以下是用C語言編寫的文件上執(zhí)行的操作.

          • 創(chuàng)建(或)打開文件

          • 從文件讀取數(shù)據(jù)

          • 將數(shù)據(jù)寫入文件

          • 關(guān)閉文件

          以上所有操作都是使用C語言中可用的文件處理功能執(zhí)行的。我們將討論文件處理功能。

          打開文件

          要創(chuàng)建新文件或打開現(xiàn)有文件,我們需要創(chuàng)建FILE類型的文件指針。以下是用于創(chuàng)建文件指針的示例代碼

          FILE *f_ptr ;

          我們使用預(yù)定義的方法fopen()創(chuàng)建新文件或打開現(xiàn)有文件。可以使用不同的模式打開文件。考慮以下代碼:

          FILE *f_ptr ; f_ptr = fopen("abc.txt", "w") ;

          上面的示例代碼創(chuàng)建一個名為abc.txt的新文件(如果該文件不存在),否則將以寫入模式打開。在C語言中,可以使用不同的模式來打開文件,這些模式如下所示:

          注意

          • 二進(jìn)制文件讀寫請使用rb,wb,ab,rb +,wb +和ab +

          • w方式打開文件,文件不存在具有創(chuàng)建文件的功能,文件存在清空文件內(nèi)容打開

          • a方式打開文件,追加模式打開文件,不清空文件中的數(shù)據(jù)

          文件讀寫

          C語言存在以下文件讀寫操作。

          1. fgetc()+fputc():字符方式讀寫

          2. fgets()+fputs():字符串方式讀寫

          3. fscanf()+fprintf():格式化讀寫

          4. fread()+fwrite():字節(jié)流讀寫

          C語言中的字符讀寫方式示例程序

          注意:一般文件打開, 是要判斷打開文件是否成功的,因?yàn)槠鶈栴}這里就省略掉

          C語言中的字符串讀寫方式示例程序


          注意:字符串讀寫,會為讀取的內(nèi)容末尾加上'\n'

          C語言中的格式化讀寫方式示例程序

          格式化讀寫其實(shí)是一種表格數(shù)據(jù)

          C語言中的字節(jié)流讀寫方式示例程序

          文本文件中顯示的內(nèi)容是亂碼,很正常的情況,能成功讀寫出來即可。

          文件指針操作函數(shù)

          fseek函數(shù)

          函數(shù)原型:int fseek(FILE *stream, long offset, int pos);

          stream:文件指針。

          offset:偏移量。

          pos:指偏移方式。有如下三種值可選:

          • SEEK_SET 從距文件開頭offset 位移量為新的讀寫位置.

          • SEEK_CUR 以目前的讀寫位置往后增加offset 個位移量.

          • SEEK_END 將讀寫位置指向文件尾后再增加offset 個位移量.

          說明:當(dāng)pos值為SEEK_CUR 或SEEK_END 時, 參數(shù)offset 允許負(fù)值的出現(xiàn).

          給出兩種比較特別的使用方式

          1. 將文件指針移動到開頭:fseek(fd, 0, SEEK_SET);

          2. 將文件指針移動到結(jié)尾:fseek(fd, 0, SEEK_END);

          返回值:調(diào)用成功返回0,失敗返回-1,errno會存放錯誤代碼。

          ftell函數(shù)

          函數(shù)原型:long ftell(FILE *stream);

          返回值:文件指針相對于文件開頭的偏移量。

          rewind函數(shù)

          函數(shù)原型:void rewind(FILE *stream);

          feof函數(shù)

          函數(shù)原型:int feof(FILE *stream);

          返回值:如果已經(jīng)到達(dá)文件的結(jié)尾(已經(jīng)將文件的最后一個字符都讀走了),返回0,否則返回非0數(shù)字。

          EOF

          是文本文件結(jié)束的標(biāo)志。在文本文件中,數(shù)據(jù)字符的ASCⅡ碼值的形式存放,普通字符的ASCⅡ碼的范圍是32到127(十進(jìn)制),EOF的16進(jìn)制代碼為0XFF(十進(jìn)制為-1),因此可以用EOF作為文件的結(jié)束標(biāo)識。當(dāng)把數(shù)據(jù)以二進(jìn)制的形式存放到文件中時,就有可能會將數(shù)字-1存放到文件中,此時繼續(xù)根據(jù)EOF來判斷文件是否結(jié)束就會出問題,為了解決這個問題,ASCI C 就提供了feof 函數(shù)。

          尾言

          作業(yè):把以下表格數(shù)據(jù)存儲到文件(信息數(shù)可少量,詞條需齊全)

          哪里有什么老天的眷顧,所謂的幸運(yùn)和成功都源自你自身的努力和付出。請記住,你現(xiàn)在多走的每一步都在拉開著你和別人的差距。要做,就做生活的強(qiáng)者。

          好了今天的知識到這里就結(jié)束了!如果有學(xué)到知識的同學(xué)們,可以留言學(xué)到了哦!如果可以的話也是可以一鍵三連,關(guān)注加轉(zhuǎn)發(fā)和點(diǎn)贊。



          瀏覽 68
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品秘 入口免费直播大尺度 | 亚洲黄色免费观看 | 麻豆国产成人AV一区二区三区 | 国产一级二级视频 | 日本无码视频在线播放 |