網站首頁 編程語言 正文
為什么使用文件
我們在想既然是通訊錄就應該把信息記錄下來,只有我們自己選擇刪除數據的時候,數據才不復存在。這就涉及到了數據持久化的問題,我們一般數據持久化的方法有,把數據存放在磁盤文件、存放到數據庫等方式。使用文件我們可以將數據直接存放在電腦的硬盤上,做到了數據的持久化。
什么是文件
磁盤上的文件是文件。
但是在程序設計中,我們一般談的文件有兩種:程序文件、數據文件(從文件功能的角度來分類的)。
程序文件
包括源程序文件(后綴為.c),目標文件(windows環境后綴為.obj),可執行程序(windows環境后綴為.exe)。
數據文件
文件的內容不一定是程序,而是程序運行時讀寫的數據,比如程序運行需要從中讀取數據的文件,或者輸出內容的文件。
本章討論的是數據文件。
文件名
一個文件要有一個唯一的文件標識,以便用戶識別和引用。
文件名包含3部分:文件路徑+文件名主干+文件后綴
例如: c:\code\test.txt
為了方便起見,文件標識常被稱為文件名
文件的打開和關閉
文件指針
每個被使用的文件都在內存中開辟了一個相應的文件信息區,用來存放文件的相關信息(如文件的名字,文件狀態及文件當前的位置等)。這些信息是保存在一個結構體變量中的。該結構體類型是有系統聲明的,取名FILE
例如,VS2013編譯環境提供的 stdio.h 頭文件中有以下的文件類型申明:
struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; char *_tmpfname; }; typedef struct _iobuf FILE;
下面我們可以創建一個FILE*的指針變量:
FILE* pf;//文件指針變量
定義pf是一個指向FILE類型數據的指針變量。可以使pf指向某個文件的文件信息區(是一個結構體變量)。通過該文件信息區中的信息就能夠訪問該文件。也就是說,通過文件指針變量能夠找到與它關聯 的文件。
比如:
fopen和fclose函數
//打開文件 FILE * fopen ( const char * filename, const char * mode ); //關閉文件 int fclose ( FILE * stream );
使用方式:
一般來說,學會熟練操作前三個就行了
實例:
/* fopen fclose example */ #includeint main () { FILE * pFile; //打開文件 pFile = fopen ("myfile.txt","w"); //文件操作 if (pFile!=NULL) { fputs ("fopen example",pFile); //關閉文件 fclose (pFile); } return 0; }
文件的順序讀寫
注:使用這些函數要包含頭文件
總結
原文鏈接:https://blog.csdn.net/m0_61719175/article/details/123019686
相關推薦
- 2022-04-09 Python中緩存lru_cache的基本介紹和講解_python
- 2023-01-11 Android開發中父組件調用子組件方法demo_Android
- 2022-08-18 C++詳解如何實現單鏈表_C 語言
- 2023-04-26 C語言函數調用基礎應用詳解_C 語言
- 2022-09-29 C語言開發實現通訊錄管理系統_C 語言
- 2022-04-23 C語言字符串替換空格實例詳解_C 語言
- 2022-03-03 MacOS git pull / git clone Enter passphrase for ke
- 2022-08-21 python深度學習tensorflow入門基礎教程示例_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支