真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言怎么操作文件的讀取和寫入

這篇文章主要介紹“c語言怎么操作文件的讀取和寫入”,在日常操作中,相信很多人在c語言怎么操作文件的讀取和寫入問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”c語言怎么操作文件的讀取和寫入”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務至上”的服務理念,堅持“二合一”的優(yōu)良服務模式,真誠服務每家企業(yè),認真做好每個細節(jié),不斷完善自我,成就企業(yè),實現(xiàn)共贏。行業(yè)涉及小攪拌車等,在成都網(wǎng)站建設、營銷型網(wǎng)站建設、WAP手機網(wǎng)站、VI設計、軟件開發(fā)等項目上具有豐富的設計經(jīng)驗。

c語言讀取和寫入文件的方法:1、可以使用fgetc()函數(shù)以字符形式讀取文件,使用fputc()函數(shù)以字符形式寫入文件;2、使用fgetc()函數(shù)以字符串的形式讀取文件,使用fputc()函數(shù)以字符串的形式寫入文件。

本教程操作環(huán)境:windows7系統(tǒng)、c99版本、Dell G3電腦。

1、以字符形式讀寫文件

以字符形式讀寫文件時,每次可以從文件中讀取一個字符,或者向文件中寫入一個字符。主要使用兩個函數(shù),分別是 fgetc() 和 fputc()。

字符讀取函數(shù) fgetc

fgetc 是 file get char 的縮寫,意思是從指定的文件中讀取一個字符。fgetc() 的用法為:

int fgetc (FILE *fp);

fp 為文件指針。fgetc() 讀取成功時返回讀取到的字符,讀取到文件末尾或讀取失敗時返回EOF。

EOF 是 end of file 的縮寫,表示文件末尾,是在 stdio.h 中定義的宏,它的值是一個負數(shù),往往是 -1。fgetc() 的返回值類型之所以為 int,就是為了容納這個負數(shù)(char不能是負數(shù))。

EOF 不絕對是 -1,也可以是其他負數(shù),這要看編譯器的實現(xiàn)。

fgetc() 的用法舉例:

char ch;
FILE *fp = fopen("D:\\demo.txt", "r+");
ch = fgetc(fp);

表示從D:\\demo.txt文件中讀取一個字符,并保存到變量 ch 中。

在文件內(nèi)部有一個位置指針,用來指向當前讀寫到的位置,也就是讀寫到第幾個字節(jié)。在文件打開時,該指針總是指向文件的第一個字節(jié)。使用 fgetc() 函數(shù)后,該指針會向后移動一個字節(jié),所以可以連續(xù)多次使用 fgetc() 讀取多個字符。

注意:這個文件內(nèi)部的位置指針與C語言中的指針不是一回事。位置指針僅僅是一個標志,表示文件讀寫到的位置,也就是讀寫到第幾個字節(jié),它不表示地址。文件每讀寫一次,位置指針就會移動一次,它不需要你在程序中定義和賦值,而是由系統(tǒng)自動設置,對用戶是隱藏的。

字符寫入函數(shù) fputc

fputc 是 file output char 的所以,意思是向指定的文件中寫入一個字符。fputc() 的用法為:

int fputc ( int ch, FILE *fp );

ch 為要寫入的字符,fp 為文件指針。fputc() 寫入成功時返回寫入的字符,失敗時返回 EOF,返回值類型為 int 也是為了容納這個負數(shù)。例如:

fputc('a', fp);

或者:

char ch = 'a';
fputc(ch, fp);

表示把字符 'a' 寫入fp所指向的文件中。

兩點說明:

1) 被寫入的文件可以用寫、讀寫、追加方式打開,用寫或讀寫方式打開一個已存在的文件時將清除原有的文件內(nèi)容,并將寫入的字符放在文件開頭。如需保留原有文件內(nèi)容,并把寫入的字符放在文件末尾,就必須以追加方式打開文件。不管以何種方式打開,被寫入的文件若不存在時則創(chuàng)建該文件。

2) 每寫入一個字符,文件內(nèi)部位置指針向后移動一個字節(jié)。

【示例】從鍵盤輸入一行字符,寫入文件。

#include
int main(){
    FILE *fp;
    char ch;
    //判斷文件是否成功打開
    if( (fp=fopen("D:\\demo.txt","wt+")) == NULL ){
        puts("Fail to open file!");
        exit(0);
    }
    printf("Input a string:\n");
    //每次從鍵盤讀取一個字符并寫入文件
    while ( (ch=getchar()) != '\n' ){
        fputc(ch,fp);
    }
    fclose(fp);
    return 0;
}

運行程序,輸入一行字符并按回車鍵結束,打開D盤下的 demo.txt 文件,就可以看到剛才輸入的內(nèi)容。

程序每次從鍵盤讀取一個字符并寫入文件,直到按下回車鍵,while 條件不成立,結束讀取。

2、以字符串的形式讀寫文件

fgetc() 和 fputc() 函數(shù)每次只能讀寫一個字符,速度較慢;實際開發(fā)中往往是每次讀寫一個字符串或者一個數(shù)據(jù)塊,這樣能明顯提高效率。

讀字符串函數(shù) fgets

fgets() 函數(shù)用來從指定的文件中讀取一個字符串,并保存到字符數(shù)組中,它的用法為:

char *fgets ( char *str, int n, FILE *fp );

str 為字符數(shù)組,n 為要讀取的字符數(shù)目,fp 為文件指針。

返回值:讀取成功時返回字符數(shù)組首地址,也即 str;讀取失敗時返回 NULL;如果開始讀取時文件內(nèi)部指針已經(jīng)指向了文件末尾,那么將讀取不到任何字符,也返回 NULL。

注意,讀取到的字符串會在末尾自動添加 '\0',n 個字符也包括 '\0'。也就是說,實際只讀取到了 n-1 個字符,如果希望讀取 100 個字符,n 的值應該為 101。例如:

#define N 101
char str[N];
FILE *fp = fopen("D:\\demo.txt", "r");
fgets(str, N, fp);

表示從 D:\\demo.txt 中讀取 100 個字符,并保存到字符數(shù)組 str 中。

需要重點說明的是,在讀取到 n-1 個字符之前如果出現(xiàn)了換行,或者讀到了文件末尾,則讀取結束。這就意味著,不管 n 的值多大,fgets() 最多只能讀取一行數(shù)據(jù),不能跨行。在C語言中,沒有按行讀取文件的函數(shù),我們可以借助 fgets(),將 n 的值設置地足夠大,每次就可以讀取到一行數(shù)據(jù)。

寫字符串函數(shù) fputs

fputs() 函數(shù)用來向指定的文件寫入一個字符串,它的用法為:

int fputs( char *str, FILE *fp );

str 為要寫入的字符串,fp 為文件指針。寫入成功返回非負數(shù),失敗返回 EOF。例如:

char *str = "http://c.biancheng.net";
FILE *fp = fopen("D:\\demo.txt", "at+");
fputs(str, fp);

表示把把字符串 str 寫入到 D:\\demo.txt 文件中。

到此,關于“c語言怎么操作文件的讀取和寫入”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
名稱欄目:c語言怎么操作文件的讀取和寫入
URL鏈接:http://weahome.cn/article/pdhhpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部