前言
本文主要介紹C語言中文件操作的相關(guān)內(nèi)容(例:文件讀、寫等相關(guān)函數(shù))。
一、文件
在對計(jì)算機(jī)的使用中我們幾乎離不開文件。例如常見的有word 文檔,txt文本文件,圖片文件、音頻文件等。
1.什么是文件?
文件是以計(jì)算機(jī)硬盤為載體存儲在計(jì)算機(jī)上的信息集合。是數(shù)據(jù)源的一種,最主要的作用是保存數(shù)據(jù)。
在程序設(shè)計(jì)中,我們可將文件分為兩大類:程序文件和數(shù)據(jù)文件
(1)程序文件
包括源程序文件(后綴為.c),目標(biāo)文件(windows環(huán)境后綴為.obj),可執(zhí)行程序文件(windows環(huán)境后綴為.exe)。
(2)數(shù)據(jù)文件
文件的內(nèi)容不一定是程序,而是程序運(yùn)行時讀寫的數(shù)據(jù),比如程序運(yùn)行需要從中讀取數(shù)據(jù)的文件,或者輸出內(nèi)容的文件。
2.文件名
文件名是文件存在的標(biāo)識,操作系統(tǒng)根據(jù)文件名來對其進(jìn)行控制和管理。每個文件都被設(shè)定一個指定的名稱,由文件主名和擴(kuò)展名組成。
即:一個文件要有一個唯一的文件標(biāo)識,以便用戶識別和引用。
文件名包含三個部分:文件路徑+文件名主干+文件后綴
例:D:\Windows Kits\10\Lib\test.txt
二、文件的打開和關(guān)閉
1.文件指針
我們對文件進(jìn)行一系列的操作——打開文件、關(guān)閉文件、向文件中寫入數(shù)據(jù)、從文件中讀出數(shù)據(jù)。所有的操作都離不開文件指針。
文件指針: FILE*
FILE:每個被使用的文件都在內(nèi)存中開辟了一個相應(yīng)的文件信息區(qū),用來存放文件的相關(guān)信息(文件的名字,文件狀態(tài)及文件當(dāng)前的位置等)。這些信息是保存在一個結(jié)構(gòu)體變量中,取名FILE。
FILE* :通過一個FILE的指針來維護(hù)這個FILE結(jié)構(gòu)的變量,對文件進(jìn)行操作。
FILE* pf;//文件指針變量
pf是一個指向FILE類型數(shù)據(jù)的指針變量。即通過文件指針變量能夠找到與它關(guān)聯(lián)的文件。
2.文件的打開與關(guān)閉
(1)fopen函數(shù)
在C語言中,操作文件之前應(yīng)該先打開文件。使用 <stdio.h> 頭文件中的 fopen() 函數(shù)可以打開文件。
用法如下:
//打開文件
FILE * fopen ( const char * filename, const char * mode );
第一個參數(shù)filename為文件名(包括文件路徑),第二個參數(shù)mode為打開方式。若打開成功,fopen返回一個結(jié)構(gòu)指針地址,否則返回NULL。
如果沒有指定文件路徑,則默認(rèn)為當(dāng)前工作目錄。
例:
//首先定義文件指針:fp
FILE *fp;
//用fopen()函數(shù)卡開文件, r——>以只讀方式打開
fp = fopen("test.txt", "r"); //沒有指定文件路徑,則默認(rèn)為當(dāng)前工作目錄。
(2)fclose函數(shù)
在執(zhí)行完文件的操作后,要用 fclose() 函數(shù)進(jìn)行“關(guān)閉文件”操作。以此釋放相關(guān)資源,避免數(shù)據(jù)丟失。同時也可提高系統(tǒng)整體的執(zhí)行效率。
fclose() 的用法為:int fclose(FILE *fp);
//fp 為文件指針,關(guān)閉文件代碼如下:
fclose(fp);
關(guān)閉成功返回值0,否則返回非零值。
以下是文件的打開方式:
例:以只寫方式打開 W
#include <stdio.h>
int main()
{
FILE* pf;
//打開文件
pf = fopen("file1.txt", "w");
//創(chuàng)建文件并進(jìn)行判斷
if (pf != NULL)
{
printf("打開文件成功!");
//關(guān)閉文件
fclose(pf);
}
return 0;
}
三、文件的順序讀寫
打開文件后要對文件進(jìn)行具體的操作,以下為文件的讀寫函數(shù)
功能 | 函數(shù)名 |
---|---|
字符輸入函數(shù) | fgetc |
字符輸出函數(shù) | fputc |
文本行輸入函數(shù) | gets |
文本行輸出函數(shù) | fputs |
格式化輸入函數(shù) | fscanf |
格式化輸出函數(shù) | fprintf |
二進(jìn)制輸入 | fread |
二進(jìn)制輸出 | fwrite |
例:
#include <stdio.h>
int main()
{
FILE* fp;
fp = fopen("D:\\codeFile\\test1.txt", "r");
if (fp != NULL)
{
//feof(file stream )文件指針到達(dá)文件末尾
while (!feof(fp)) //讀文件
printf("%c", fgetc(fp));
}
else
printf("fail to open! \n");
fclose(fp);
return 0;
}
結(jié)果:(feof()函數(shù)檢查文件是否讀取完畢)文章來源:http://www.zghlxwxcb.cn/news/detail-782486.html
總結(jié)
提示:以上就是本文是全部內(nèi)容文章來源地址http://www.zghlxwxcb.cn/news/detail-782486.html
到了這里,關(guān)于C語言文件操作(文件讀寫)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!