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

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

c語言文件讀寫操作有哪些?

c語言文件讀寫操作有:1、讀寫文件中字符的函數(shù),代碼為【int fgetc(FILE *stream)】;2、讀寫文件中字符串的函數(shù),代碼為【int fputs(char *string,FILE *stream)】。

西工網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,西工網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為西工上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的西工做網(wǎng)站的公司定做!

c語言文件讀寫操作有:

1.文件的打開函數(shù)fopen()

文件的打開操作表示將給用戶指定的文件在內(nèi)存分配一個FILE結(jié)構(gòu)區(qū),并將該結(jié)構(gòu)的指針返回給用戶程序,以后用戶程序就可用此FILE指針來實現(xiàn)對指定文件的存取操作了。當使用打開函數(shù)時,必須給出文件名、文件操作方式(讀、寫或讀寫),

如果該文件名不存在,就意味著建立(只對寫文件而言,對讀文件則出錯),并將文件指針指向文件開頭。若已有一個同名文件存在,則刪除該文件,若無同名文件,則建立該文件,并將文件指針指向文件開頭。

fopen(char *filename,char *type);

其中*filename是要打開文件的文件名指針,一般用雙引號括起來的文件名表示,也可使用雙反斜杠隔開的路徑名。而*type參數(shù)表示了對打開文件的操作方式。其可采用的操作方式如下:

含義 "r" 打開,只讀;

"w" 打開,文件指針指到頭,只寫;

"a" 打開,指向文件尾,在已存在文件中追加;

"rb" 打開一個二進制文件,只讀;

"wb" 打開一個二進制文件,只寫;

"ab" 打開一個二進制文件,進行追加 ;

"r+" 以讀/寫方式打開一個已存在的文件;

"w+" 以讀/寫方式建立一個新的文本文件 ;

"a+" 以讀/寫方式打開一個文件文件進行追加 ;

"rb+" 以讀/寫方式打開一個二進制文件;

"wb+" 以讀/寫方式建立一個新的二進制文件 ;

"ab+" 以讀/寫方式打開一個二進制文件進行追加 ;

當用fopen()成功的打開一個文件時,該函數(shù)將返回一個FILE指針,如果文件打開失敗,將返回一個NULL指針。

2.關(guān)閉文件函數(shù)fclose()

文件操作完成后,必須要用fclose()函數(shù)進行關(guān)閉,這是因為對打開的文件進行寫入時,若文件緩沖區(qū)的空間未被寫入的內(nèi)容填滿,這些內(nèi)容不會寫到打開的文件中去而丟失。只有對打開的文件進行關(guān)閉操作時,停留在文件緩沖區(qū)的內(nèi)容才能寫到該文件中去,從而使文件完整。

再者一旦關(guān)閉了文件,該文件對應(yīng)的FILE結(jié)構(gòu)將被釋放,從而使關(guān)閉的文件得到保護,因為這時對該文件的存取操作將不會進行。文件的關(guān)閉也意味著釋放了該文件的緩沖區(qū)。

int fclose(FILE *stream);

它表示該函數(shù)將關(guān)閉FILE指針對應(yīng)的文件,并返回一個整數(shù)值。若成功地關(guān)閉了文件,則返回一個0值,否則返回一個非0值。

#include 
#include 
#include 
using namespace std;
int main()
{
    FILE *fp;   //  頭文件#include 
    if((fp=fopen("123.txt","w"))==NULL)
    {
        printf("file cannot open \\n");
        //exit(0);  頭文件#include 
        //exit結(jié)束程序,一般0為正常推出,其它數(shù)字為異常,其對應(yīng)的錯誤可以自己指定。
    }
    else
        printf("file opened for writing \\n");
    if(fclose(fp)!=0)
        printf("file cannot be closed \\n");
    else
        printf("file is now closed \\n");
    return 0;
}

3.文件的讀寫

(1).讀寫文件中字符的函數(shù)(一次只讀寫文件中的一個字符):

int fgetc(FILE *stream);
int getchar(void);
int fputc(int ch,FILE *stream);
int putchar(int ch);
int getc(FILE *stream);
int putc(int ch,FILE *stream);

fgetc()函數(shù)將把由流指針指向的文件中的一個字符讀出,例如: ch=fgetc(fp); 將把流指針fp指向的文件中的一個字符讀出,并賦給ch,當執(zhí)行fgetc()函數(shù)時,若當時文件指針指到文件尾,即遇到文件結(jié)束標志EOF(其對應(yīng)值為-1),該函數(shù)返回一個-1給ch,在程序中常用檢查該函數(shù)返回值是否為-1來判斷是否已讀到文件尾,從而決定是否繼續(xù)。

#include 
#include 
#include 
using namespace std;
int main()
{
    FILE *fp;
    char ch;
    if((fp=fopen("123.txt","r"))==NULL)
        printf("file cannot open \\n");
    else
        printf("file opened for writing \\n");
    while((ch=fgetc(fp))!=EOF)
        fputc(ch,stdout); //這里是輸出到屏幕
    if(fclose(fp)!=0)
        printf("file cannot be closed \\n");
    else
        printf("file is now closed \\n");
    return 0;
}

該程序以只讀方式打開123.txt文件,在執(zhí)行while循環(huán)時,文件指針每循環(huán)一次后移一個字符位置。用fgetc()函數(shù)將文件指針指定的字符讀到ch變量中,然后用fputc()函數(shù)在屏幕上顯示,當讀到文件結(jié)束標志EOF時,關(guān)閉該文件。 上面的程序用到了fputc()函數(shù),該函數(shù)將字符變量ch的值寫到流指針指定的文件中去,由于流指針用的是標準輸出(顯示器)的FILE指針stdout,故讀出的字符將在顯示器上顯示。又比如: fputc(ch,fp); 該函數(shù)執(zhí)行結(jié)構(gòu),將把ch表示的字符送到流指針fp指向的文件中去。

在TC中,putc()等價于fputc(),getc()等價于fgetc()。 putchar(c)相當于fputc(c,stdout);getchar()相當于fgetc(stdin)。 注意,這里使用char ch,其實是不科學(xué)的,因為最后判斷結(jié)束標志時,是看ch!=EOF,而EOF的值為-1,這顯然和char是不能比較的。所以,某些使用,我們都定義成int ch

#include 
#include 
#include 
using namespace std;
int main()
{
    FILE *fp;
    if((fp=fopen("123.txt","a"))==NULL)
        printf("file cannot open \\n");
    else
        printf("file opened for writing \\n");
    char ch='e';
    fputc(ch,fp); //輸入到文件中
    if(fclose(fp)!=0)
        printf("file cannot be closed \\n");
    else
        printf("file is now closed \\n");
    return 0;
}

(2).讀寫文件中字符串的函數(shù)

char *fgets(char *string,int n,FILE *stream);
char *gets(char *s);
int fprintf(FILE *stream,char *format,variable-list);
int fputs(char *string,FILE *stream);
char *puts(char *s);
int fscanf(FILE *stream,char *format,variable-list);

其中fgets()函數(shù)將把由流指針指定的文件中n-1個字符,讀到由指針string指向的字符數(shù)組中去,例如: fgets(buffer,9,fp); 將把fp指向的文件中的8個字符讀到buffer內(nèi)存區(qū),buffer可以是定義的字符數(shù)組,也可以是動態(tài)分配的內(nèi)存區(qū)。

注意,fgets()函數(shù)讀到'/n'就停止,而不管是否達到數(shù)目要求。同時在讀取字符串的最后加上'/0'。 fgets()函數(shù)執(zhí)行完以后,返回一個指向該串的指針。如果讀到文件尾或出錯,則均返回一個空指針NULL,所以長用feof()函數(shù)來測定是否到了文件尾或者是ferror()函數(shù)來測試是否出錯,

檢測是否已到文件尾,是返回真,否則返回0,其原型是int feof(FILE *stream);

例:if(feof(fp))printf("已到文件尾");

原型是int ferror(FILE *stream);返回流最近的錯誤代碼,可用clearerr()來清除它,clearerr()的原型是void clearerr(FILE *stream);

例:printf("%d",ferror(fp));

例如下面的程序用fgets()函數(shù)讀test.txt文件中的第一行并顯示出來:

#include "stdio.h" 
int main() {
    FILE *fp; 
    char str[128]; 
    if((fp=fopen("123.txt","r"))==NULL) {
        printf("cannot open file/n"); exit(1);
    } 
    while(!feof(fp)) {
        if(fgets(str,128,fp)!=NULL)
        printf("%s",str);
    }
    fclose(fp);
}

相關(guān)學(xué)習(xí)推薦:C視頻教程


新聞名稱:c語言文件讀寫操作有哪些?
當前網(wǎng)址:http://weahome.cn/article/cpcscd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部