學習筆記18-C語言-文件

文件的分類:

文本文件:  存儲的是ASCII碼值的二進制
二進制文件:    存儲的是數據的補碼

文件IO:

FILE *fopen(const char *path, const char *mode);
功能:打開或者創建文件
path:文件的路徑
mode:打開模式r   以只讀權限打開文件,如果該文件不存在則打開失敗r+  在r的基礎上,增加寫權限w   以只寫權限打開文件,如果文件不存在則創建,如果文件存在則會清空w+  在w的基礎上,增加讀權限a   以追加的形式打開文件,如果文件不存在則新建,如果文件存在則不清空,新寫入的數據會在文件的文件。a+  在a的基礎上,增加讀權限注意:以上方式打開文件都是以文本文件形式來操作文件的,在它們的基礎加上b表示以二進制形式操作文件。rb wb wb+返回值:結構指針,不需要關心它的成員,只需要知道它是操作該文件的唯一憑證。二進制形式的讀寫:【人無法直接讀懂文件】
size_t fwrite(const void *ptr,size_t size,size_t nmemb,FILE *stream);
功能:從內存中把數據寫入到文件中
ptr:要寫入的內存的首地址
size:一次寫入的字節數
nmemb:寫入多少次
FILE*:文件指針,fopen的返回值
返回值:成功寫入的次數size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
功能:從文件中讀取數據到內存中
ptr:要讀取到內存的首地址
size:每次讀取多少個字節
nmemb:讀取多少次
FILE*:文件指針
返回值:成功讀取到的次數文本形式的讀寫【人能直接看懂文件】
int fprintf(FILE *stream, const char *format, ...);
功能:以文本形式寫入數據到文件中
stream:要寫入的文件指針
format:占位符...
...:變量列表
返回值:int fscanf(FILE *stream, const char *format, ...);
功能:以文本形式從文件中讀取數據到內存中
stream:要寫入的文件指針
format:占位符...
...:變量列表的地址
返回值:成功讀取到的變量的個數int fclose(FILE *fp);
功能:關閉文件(因為有緩沖區的存在,想要立即寫入到文件,關閉一下文件)文件位置指針:每個打開的文件都會有一個文件位置指針指向要讀寫的位置,它會隨著文件的讀寫而移動,以r、r+、w、w+模式打開文件,文件位置指針會在文件的開頭,以a\a+打開,文件位置指針會在文件的末尾int fseek(FILE *stream, long offset, int whence);功能:設置文件的位置指針stream:要設置的文件指針offset:偏移值whence:基礎位置SEEK_SET:文件的開頭SEEK_CUR: 文件指針的當前位置SEEK_END: 文件的末尾返回值:成功返回0,失敗返回-1void rewind(FILE *stream);功能:把文件位置指針設置到文件開頭long ftell(FILE *stream);功能:獲取文件位置指針當前所在的位置返回:所在第幾個字節int feof(FILE *stream);功能:檢查文件位置指針是否已經到達末尾返回值:如果到達末尾返回非零值char *fgets(char *s, int size, FILE *stream);功能:從文件中讀取一行字符串int fputs(const char *s, FILE *stream);功能:寫入一個字符串到文件中,會自動添加\n在末尾int fgetc(FILE *stream);功能:從文件中讀取一個字符int fputc(int c, FILE *stream);功能:寫入一個字符到文件中int remove(const char *pathname);功能:刪除一個文件返回值:成功返回0,失敗返回-1int rename(const char *oldpath, const char *newpath);功能:重命名文件返回值:成功返回0,失敗返回-1main函數的參數:是為了獲取命令行的參數    argc    代表了命令行參數的總個數argv    代表了每個參數字符串的首地址

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443447.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443447.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443447.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用INNER JOIN ON 多表關聯查詢,獲取指定用戶下指定權限的資源SQL:

摘要:最近在看一個開源框架,其中用戶,角色,資源,這塊我感覺比較重要,所以就自己也模仿著寫了下,其中在獲取指定用戶下的權限資源的時候遇到問題了,開始時,我首先想到的方…

Maven學習記錄之maven基本操作命令,maven本地工廠的創建,maven骨架的生成,以及在eclipse中創建maven工程:...

摘要:今天又學習了一下maven,之前是下載并安裝和配置好了maven的環境,今天主要學習的內容包括:maven本地工廠的創建,maven骨架的生成命令,maven在dos下創建maven工程,以及在eclipse中創建mavne工…

Oracle中通過游標執行帶參數的存儲過程實現解析CLOB字段內的xml字符串:

摘要:近來之前的項目數據出現了問題,原因是由于之前在設計數據庫的時候把時間字段設置成了字符串格式,所以給后期的數據操作帶來了很大的麻煩,這里提醒一下各位程序猿,以后在開發項目的時候時間字段一定要是時間字段&a…

Eclipse中使用Checkstyle,checkstyle插件檢查java代碼的自定義配置文件:

摘要:近來項目組在搞代碼檢查,所以領導讓把checkstyle這個插件搞明白,現在我把我們寫的自定義的checkstyle.xml文件記錄一下,以便大家可以一起使用: 一:要使用checkstyle插件在eclipse中檢查java代碼&…

Linux 下安裝 jdk-7u75-linux-x64.gz,jdk1.7.0_75,jdk1.7步驟:

摘要:近來又用到了Linux系統,所以就又新裝了一個虛擬機和CentOS 6.4來用,搞開發的程序猿們可能都知道,在現在的很多企業中,生產環境大多都是Linux服務器,并且用的比較多的大都是CentOS,Red hat系…

Win7+VMware10.0+CentOS 6.4+Tomcat,Win7訪問不了CentOS6.4上的Tomcat

摘要:今天在linux下安裝Tomcat后,在虛擬機本地通過:http://localhost:8080/可以訪問安裝好的Tomcat服務器,但是在本機就不能訪問,前提是在本機下可以ping的通虛擬機的IP地址的,最后經過Google,發現說可能是…

Linux下配置OpenLDAP服務記錄

摘要:最近部門需要整合所有的系統,所以領導說要通過OpenLdap數據庫來實現對所有系統的統一管理,所以需要在服務器上配置一下LDAP服務,我們這里選擇的是OpenLdap服務,我在網上搜索了很多,開始都沒有配置成功…

Linux下配置CollabNet Subversion Edge

摘要:最近一直都在搞一下管理員的工作,今天又搞了svn的管理工具CollabNetSubversionEdge,網上也有很多例子,但是很多都是可以訪問到web界面,但是不能啟動版本庫的服務,所以我經過多次嘗試,終于解…

養成讓自己進步的10個習慣

養成讓自己進步的10個習慣 1.永遠不說不可能。"辦法總比問題多" 2.凡事第一反應找方法,不是找借口。"不要推卸責任" 3.養成記錄習慣,不太依賴腦袋。"好記性不如爛筆頭" 4.每天出門照鏡子,給自己自信的微笑。&…

Oracle存儲過程中使用游標來批量解析CLOB字段里面的xml字符串:

摘要:之前在項目中使用到了Oracle數據庫中通過觸發器去調用存儲過程執行數據解析并Update到對應的數據表中,但是,經過一段時間的測試使用發現,如果job那天停掉了,然后你再重新新建job的話,這時候可能會有很…

Maven配置nexus

摘要:近來一直在搭建maven結構的開發框架,其中這個過程中用到了nexus私服,這里我把我經過查詢總結的最終的方式記錄一下,以便后面忘記了: 一:nexus私服的安裝(略) 二:倉庫的講解如下圖: 1、ho…

Maven項目發布的配置

摘要:要想發布maven結構的項目到nexus私服上,可以通過兩種方式來,一種是在項目的pom.xml文件里面配置,另一種是通過命令的方式發布到nexus私服上,但是這種方式的前提也得在settings.xml文件配置用戶: 一:M…

MariaDB通過命令行的方式導出指定數據庫和還原指定數據庫

摘要:今天由于需要需要從本地導出一份VP系統的數據庫腳本,以前我都是通過工具直接導出,現在有同事說可以通過mysql的命令方式導出,我試了一下,可以,現在記錄一下! 一:在MariaDB的安裝…

java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener

一:如果出現下面的錯誤信息,如果你的項目是Maven結構的,那么一般都是你的項目的Maven Dependencies沒有添加到項目的編譯路徑下: 五月 10, 2015 6:23:18 下午 org.apache.catalina.core.AprLifecycleListener init 信息: The APR …

Maven 打成 Webjar的方法

摘要:今天領導說要把自己定義的樣式文件和js文件打成一個自定義的webjar,所以就寫了一下,現在記錄一下: 1. 先把要打包成webjar的文件放到你新建的maven結構的項目的/src/main/resources目錄下 2.編寫該項目的pom.xml文件&#…

Maven中maven-source-plugin,maven-javadoc-plugin插件的使用:

摘要:今天領導說要把項目通過maven生產源碼包和文檔包并發布到自己的私服上,經過查看mavne官網發現有兩個maven插件可以做到這些工作,一個是maven-source-plugin,另一個是maven-javadoc-plugin,現在記錄一下&#xff0…

Maven之生成測試覆蓋度的插件cobertura-maven-plugin的使用

摘要:Maven中可以通過使用插件檢查一個項目的測試代碼的覆蓋度,這個插件就是cobertura-maven-plugin,這個插件如何使用我做了測試,現在記錄一下! 一:首先在你的項目的pom.xml文件中增加該插件的配置&#x…

Linux下開啟mysql數據庫的遠程訪問權限

摘要:今天在Linux服務器上安裝了msyql數據庫,在本地訪問的時候可以訪問,但是我想通過遠程的方式訪問的時候就不能訪問了,查詢資料后發現,Linux下mysql默認安裝完成后只有本地訪問的權限,沒有遠程訪問的權限…

Maven之自定義pom類型的基礎項目

摘要:在當前的軟件開發場景中,大都是通過maven管理項目,而如果使用maven的話,其實也會有很多問題,比如項目中依賴的版本管理就是一個很頭疼的事,如果一個項目中有很多人同時開發那么這就很可能造成大家添加…

Maven之搭建本地私服(nexus)倉庫

摘要:現在越來越多的項目都在使用Maven管理項目,尤其是在大型的項目團隊中使用Maven能帶來更加多的好處,私服的好處我相信大家都明白,在這里我就不多說了,它最重要的作用就是可以讓項目團隊成員更加方便的下載對應的項…