最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章帶你了解C語言文件操作中的幾個函數(shù)

 更新時間:2021年09月13日 14:35:45   作者:小輪子啊  
這篇文章主要介紹了使用C語言操作文件的基本函數(shù)整理,包括創(chuàng)建和打開以及關(guān)閉文件的操作方法,需要的朋友可以參考下,希望能夠給你帶來幫助

fopen:有兩個參數(shù),第一個是要被打開或者被創(chuàng)建的文件名,第二個是以什么方式打開。這兩個參數(shù)要分別用雙引號括起來

打開文件和關(guān)閉文件的基本流程,關(guān)閉文件之后要置空

fwrite:有四個參數(shù),第一個是指向要被寫入的數(shù)據(jù)的指針,這里是a的地址;第二個參數(shù)是被寫入項的大小,單位是字節(jié),這里是a的大??;第三個參數(shù)是要被寫入的項的個數(shù),這里是1,意思是寫入一個a;最后一項是FILE結(jié)構(gòu)的指針,這里是pf。這四個參數(shù)不需要雙引號。

文件指針:、

每個被使用的文件都在內(nèi)存中開辟了一個相應(yīng)的文件信息區(qū),用來存放文件的相關(guān)信息(比如文件的名字、文件狀態(tài)以及文件當(dāng)前的位置等)。這些信息都是保存在一個結(jié)構(gòu)體變量中的,該結(jié)構(gòu)體類型是有系統(tǒng)聲明的,取名FILE。

不同的編譯器FILE類型包含的內(nèi)容并不完全相同,但是都大同小異。每當(dāng)打開一個文件的時候,系統(tǒng)都會根據(jù)文件的情況自動創(chuàng)建一個FILE結(jié)構(gòu)的變量,并填充其中的信息,使用者并不用關(guān)心細(xì)節(jié)。一般都是通過一個FILE結(jié)構(gòu)體的指針(pf)來維護這個FILE結(jié)構(gòu)的變量,這樣使用起來更加方便。

fgetc:只有一個參數(shù),是FILE結(jié)構(gòu)的指針,每次從該指針指向的數(shù)據(jù)中讀取一個字符

fputc:有兩個參數(shù),第一個是要被寫入的字符,用單引號括起來,第二個是FILE類型的指針,這里是pfWrite

fgets:用于讀取字符串,有三個參數(shù),第一個是讀取的數(shù)據(jù)要存放的位置(數(shù)組),第二個是可以讀取的最大字符數(shù),第三個是FILE結(jié)構(gòu)的指針,這里是標(biāo)準(zhǔn)輸入流(鍵盤)下圖中是從鍵盤輸入,再輸出到屏幕

fputs:用于輸出字符串,如果成功,函數(shù)會返回一個非負(fù)值,有兩個參數(shù),第一個是要被輸出字符串?dāng)?shù)組,第二個是FILE結(jié)構(gòu)的指針,這里是標(biāo)準(zhǔn)輸出流(屏幕)

gets:如果成功,函數(shù)會返回其參數(shù),只有一個參數(shù),即輸入字符串的存儲位置---buffer緩沖區(qū)

puts:如果成功,函數(shù)返回一個非負(fù)值,只有一個參數(shù),即輸出字符串所在的數(shù)組的地址

下圖這兩組函數(shù)的功能一樣,程序運行后,在鍵盤上輸入什么字符或字符串,按下回車后,就會在屏幕上打印什么字符或字符串

fprintf:格式化的寫(輸出)數(shù)據(jù)--這里是寫進(jìn)去一個結(jié)構(gòu)體,直接打印出來,該函數(shù)有三個參數(shù),第一個是指向FILE結(jié)構(gòu)體的指針(pf),意思是將數(shù)據(jù)寫到pf所指向的結(jié)構(gòu)體當(dāng)中,第二個是格式,要輸出的數(shù)據(jù)的格式,要和后面的數(shù)據(jù)一一對應(yīng),第三個參數(shù)是要被輸出的數(shù)據(jù)(可以是結(jié)構(gòu)體,如下圖)

fscanf:格式化的輸入數(shù)據(jù),有三個參數(shù),第一個是指向FILE結(jié)構(gòu)體的指針(pf),第二個是 格式,第三個是要被寫入的數(shù)據(jù)的地址,這里在注意是地址,經(jīng)常出錯,類比scanf,只比scanf多了第一個參數(shù)

sprintf:格式化的輸入,有三個參數(shù),第一個參數(shù)是要被寫入內(nèi)容的數(shù)組地址,第二個是格式,第三個是要被寫入的數(shù)據(jù)---主義的是,下圖中,sprintf函數(shù)是給字符數(shù)組char buf[]寫入結(jié)構(gòu)體數(shù)據(jù),結(jié)構(gòu)體中有不同的格式,這里需要注意輸入信息的時候是按照%d%f%s對應(yīng)的格式輸入的,也就是結(jié)構(gòu)體成員對應(yīng)的格式,輸入到數(shù)組buf中后才將格式都轉(zhuǎn)換為字符,這里打印出來的100;3.140000也都是字符型

sscanf是格式化的讀取函數(shù),這里是將剛才上圖寫入到數(shù)組buf中的數(shù)據(jù)讀取到結(jié)構(gòu)體變量tmp當(dāng)中,讀入時會按照結(jié)構(gòu)體成員對應(yīng)的格式將字符數(shù)組char buf中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,再存儲到結(jié)構(gòu)體變量tmp中。

sscanf依然是三個參數(shù),第一個是被讀數(shù)組地址,第二個是被寫入數(shù)據(jù)的結(jié)構(gòu)體成員的對應(yīng)格式,第三個是結(jié)構(gòu)體成員對應(yīng)的地址,這里要取地址,切記

下面的知識點面試可能會用到,務(wù)必搞懂

scanf和printf是針對標(biāo)準(zhǔn)輸入流(鍵盤)/標(biāo)準(zhǔn)輸出流(屏幕)的格式化輸入/輸出語句。

fscanf和fprintf是針對所有輸入流/標(biāo)準(zhǔn)輸出流的格式化輸入/輸出語句。

sscanf和sprintf是:ssacnf是從字符串中讀取格式化的數(shù)據(jù),sprintf是把格式化數(shù)據(jù)輸出成(存儲到)字符串中。

fseek:有三個參數(shù),第一個是指向FILE結(jié)構(gòu)體的指針pf,第二個是偏移量(可正可負(fù)),第三個是文件指針的當(dāng)前位置(SEEK_CUR文件指針的當(dāng)前位置\SEEK_END文件的末尾位置\SEEK_SET文件的起始位置)

perror報錯函數(shù),不需要單獨引頭文件,不需要寫參數(shù),perror(“hehe”);這個表達(dá)式會先打印hehe: 再報出錯誤原因,它會自行判斷錯誤原因并打印,用起來很方便

strerror也是報錯函數(shù),使用:strerror(errno);,使用時需要引頭文件#include<string.h>

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Qt實現(xiàn)柵格布局效果

    Qt實現(xiàn)柵格布局效果

    這篇文章主要為大家詳細(xì)介紹了Qt實現(xiàn)柵格布局效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 一文弄懂C語言如何實現(xiàn)單鏈表

    一文弄懂C語言如何實現(xiàn)單鏈表

    單鏈表是由多個結(jié)點鏈接組成,它的每個結(jié)點包含兩個域,一個數(shù)據(jù)域和一個鏈接域(地址域),下面這篇文章主要給大家介紹了關(guān)于C語言如何實現(xiàn)單鏈表的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • 淺析string類字符串和C風(fēng)格字符串之間的區(qū)別

    淺析string類字符串和C風(fēng)格字符串之間的區(qū)別

    string類是標(biāo)準(zhǔn)庫的類,并不是內(nèi)置類型,標(biāo)準(zhǔn)庫就像是我們自己定義的類差不多的,string類型對象沒有標(biāo)配'\0'結(jié)尾的
    2013-09-09
  • C語言代碼實現(xiàn)學(xué)生成績管理系統(tǒng)

    C語言代碼實現(xiàn)學(xué)生成績管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言代碼實現(xiàn)學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C++實現(xiàn)高并發(fā)異步定時器

    C++實現(xiàn)高并發(fā)異步定時器

    這篇文章主要為大家詳細(xì)介紹了如何利用C++實現(xiàn)高并發(fā)異步定時器,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • 數(shù)據(jù)結(jié)構(gòu)之AVL樹詳解

    數(shù)據(jù)結(jié)構(gòu)之AVL樹詳解

    這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之AVL樹詳解,本文非常細(xì)致的講解了AVL樹的基礎(chǔ)知識、AVL樹的旋轉(zhuǎn)操作、AVL數(shù)的插入和刪除操作等,需要的朋友可以參考下
    2014-08-08
  • 基于easyx的C++實現(xiàn)貪吃蛇

    基于easyx的C++實現(xiàn)貪吃蛇

    這篇文章主要為大家詳細(xì)介紹了基于easyx的C++實現(xiàn)貪吃蛇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C++ Template 基礎(chǔ)篇(一):函數(shù)模板詳解

    C++ Template 基礎(chǔ)篇(一):函數(shù)模板詳解

    這篇文章主要介紹了C++ Template函數(shù)模板,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • C++中漢字字符串的截取

    C++中漢字字符串的截取

    C++中漢字字符串的截取,需要的朋友可以參考一下
    2013-05-05
  • c語言中回調(diào)函數(shù)的使用以及實際作用詳析

    c語言中回調(diào)函數(shù)的使用以及實際作用詳析

    回調(diào)函數(shù)就是一個通過函數(shù)指針調(diào)用的函數(shù),如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個函數(shù),當(dāng)這個指針被用來調(diào)用其所指向的函數(shù)時,我們就說這是回調(diào)函數(shù),這篇文章主要給大家介紹了關(guān)于c語言中回調(diào)函數(shù)的使用以及實際作用的相關(guān)資料,需要的朋友可以參考下
    2021-07-07

最新評論

新泰市| 东阿县| 福州市| 乡宁县| 文成县| 崇义县| 肇源县| 甘孜| 九台市| 青海省| 东山县| 丽水市| 固原市| 越西县| 米脂县| 西昌市| 武清区| 肇庆市| 吴忠市| 舟曲县| 利辛县| 泉州市| 察雅县| 兴山县| 太康县| 宝坻区| 静安区| 南丰县| 洪湖市| 宁都县| 东平县| 微山县| 商水县| 大悟县| 济宁市| 神池县| 广昌县| 平原县| 昌都县| 双鸭山市| 永修县|