欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言文件打開的模式

 更新時間:2018年03月04日 09:14:22   作者:Andrew_qian  
這篇文章主要介紹了C語言文件打開的模式,以及相關的原理和知識點做了分享,有興趣的朋友參考學習下。

1、文件分為ASCII文件和二進制文件,ASCII文件也稱文本文件,由一系列字符組成,文件中存儲的是每個字符的ASCII碼值。

2、FILE *fp;

FILE是文件類型標識符,是C編譯系統(tǒng)定義好的一個結構體類型,結構體中含有文件名、文件狀態(tài)等信息。
其定義一個指針變量fp,該變量用于指向一個文件,存放的是文件緩沖區(qū)的首地址。

3、文件的打開:fopen();

C語言訪問文件的方式一共有12種。由這幾個關鍵字組合而成:read,write,append(追加),text(文本文件),banary(二進制文件),+表示讀和寫。

4、文件的關閉:fclose();

操作系統(tǒng)對打開的文件數量有限制,當打開的文件過多的時候,文件之間的讀寫會相互影響,所以要及時關閉不使用的文件。
該函數正常關閉文件時返回0,否則-1;

關閉文件的時候,系統(tǒng)對fp所指向的緩沖區(qū)進行清理,把數據輸出到磁盤文件,然后釋放緩沖區(qū)單元,使文件指針與具體文件脫鉤。這樣防止文件丟失、信息被破壞。

但是用C語言操作文件的時候,有時會產生亂碼,這個時候要檢查一下自己的程序,寫入文件的變量有沒有初始化,有沒有正確關閉文件。當變量沒有初始化的時候,亂碼經常表現為“燙燙燙”。

還有一種可能就是文件編碼方式與程序的編碼方式不一致。Windows下的TXT文件都是ANSI編碼方式。注意自己的編譯器編碼方式。

r代表read的簡寫,+代表可讀可寫,w代表write,b代表bit二進制位,t代表text

r 打開只讀文件,該文件必須存在

r+ 打開可讀可寫的文件,該文件必須存在(這里的寫文件是指將之前的文件覆蓋

rt 打開只讀文本文件,該文本必須存在

rt+ 讀寫打開一個文本文件,允許讀和寫,該文件必須存在(這里的寫文件是指將之前的文件覆蓋

rb 只讀打開一個二進制文件,,該文本必須存在

rb+ 讀寫打開一個文本文件,允許讀和寫,該文件必須存在(這里的寫文件是指將之前的文件覆蓋

w 打開只寫文件,若文件存在,則文件長度清零,即文件內容會消失,若文件不存在則建立該文件

w+ 打開可讀寫文件,若文件存在,則文件長度清零,即文件內容會消失,若文件不存在則建立該文件(這里的讀文件,同樣需要使用rewind()函數)

wt 打開只寫文本文件,若文件存在,則文件長度清零,即文件內容會消失,若文件不存在則建立該文件

wt+ 打開可讀寫文本文件,若文件存在,則文件長度清零,即文件內容會消失,若文件不存在則建立該文件

wb 打開只寫二進制文件,若文件存在,則文件長度清零,即文件內容會消失,若文件不存在則建立該文件

wb+ 打開可讀寫文件,若文件存在,則文件長度清零,即文件內容會消失,若文件不存在則建立該文件

a以附加的方式打開只寫文件,若文件不存在,則建立文件,存在則在文件尾部添加數據,即追加內容

a+以附加的方式打開可讀寫文件,不存在則建立文件,存在則寫入數據到文件尾(這里的讀文件,同樣需要使用rewind()函數,但是寫文件不需要rewind()函數,a是追加)

at二進制數據的追加,不存在則創(chuàng)建,只能寫。

at+讀寫打開一個文本文件,允許讀或在文本末追加數據(這里的讀文件,同樣需要使用rewind()函數,但是寫文件不需要rewind()函數,a是追加)

ab二進制數據的追加,不存在則創(chuàng)建,只能寫。

ab+讀寫打開一個二進制文件,不存在則創(chuàng)建,允許讀或在文本末追加數據(這里的讀文件,同樣需要使用rewind()函數,但是寫文件不需要rewind()函數,a是追加)

相關文章

  • C++ Qt開發(fā)之CheckBox多選框組件的用法詳解

    C++ Qt開發(fā)之CheckBox多選框組件的用法詳解

    Qt是一個跨平臺C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺窗體應用程序,在Qt中我們可以通過拖拽的方式將不同組件放到指定的位置,實現圖形化開發(fā)極大的方便了開發(fā)效率,本章將重點介紹CheckBox單行輸入框組件的使用方法,需要的朋友可以參考下
    2023-12-12
  • c語言實現基數排序解析及代碼示例

    c語言實現基數排序解析及代碼示例

    這篇文章主要介紹了c語言實現基數排序解析及代碼示例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • C++中單鏈表操作的示例代碼

    C++中單鏈表操作的示例代碼

    這篇文章主要為大家詳細介紹了C++中單鏈表操作的示例代碼,主要包括單鏈表的創(chuàng)建、元素的插入和刪除等。文中的代碼簡潔易懂,需要的可以參考一下
    2022-10-10
  • C++如何將一個vector內容賦值給另一個vector,及swap與assign區(qū)別

    C++如何將一個vector內容賦值給另一個vector,及swap與assign區(qū)別

    在本文中,我們將主要介紹5種將一個vector內容賦值給另一個vector的方式,順便討論下swap與assign的區(qū)別,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++深入分析講解鏈表

    C++深入分析講解鏈表

    當我們在寫一段代碼時,如果要頻繁的在一塊區(qū)域進行插入或者刪除操作時,會發(fā)現用數組實現會比較復雜,這時候我們就要用另一種數據結構,鏈表來實現
    2022-06-06
  • C++實現LeetCode(150.計算逆波蘭表達式)

    C++實現LeetCode(150.計算逆波蘭表達式)

    這篇文章主要介紹了C++實現LeetCode(150.計算逆波蘭表達式),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • C++ STL關聯式容器自定義排序規(guī)則的2種方法

    C++ STL關聯式容器自定義排序規(guī)則的2種方法

    這篇文章主要介紹了C++ STL關聯式容器自定義排序規(guī)則的2種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • C++ QT智能指針的使用詳解

    C++ QT智能指針的使用詳解

    這篇文章主要介紹了C++ QT智能指針的使用,Qt是一個跨平臺的C++框架,主要用來開發(fā)圖形用戶界面程序,也可以開發(fā)不帶界面的命令行程序,下面我們來了解QT智能指針是如何使用的
    2023-12-12
  • 詳解C語言中雙指針算法的使用

    詳解C語言中雙指針算法的使用

    雙指針,指的是在遍歷對象的過程中,不是普通的使用單個指針進行訪問,而是使用兩個相同方向(快慢指針)或者相反方向(對撞指針)的指針進行掃描,從而達到相應的目的。本文將通過示例帶大家深入了解雙指針算法的使用
    2022-08-08
  • C語言的動態(tài)內存分配及動態(tài)內存分配函數詳解

    C語言的動態(tài)內存分配及動態(tài)內存分配函數詳解

    這篇文章主要為大家詳細介紹了C語言的動態(tài)內存分配及動態(tài)內存分配函數,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03

最新評論