1. 程式人生 > >c語言檔案操作函式詳解

c語言檔案操作函式詳解

C語言中沒有輸入輸出語句,所有的輸入輸出功能都用 ANSI C提供的一組標準庫函式來實現。檔案操作標準庫函式有:

      檔案的開啟操作 fopen 開啟一個檔案

      檔案的關閉操作 fclose 關閉一個檔案

      檔案的讀寫操作 fgetc 從檔案中讀取一個字元
              fputc 寫一個字元到檔案中去
              fgets 從檔案中讀取一個字串
              fputs 寫一個字串到檔案中去
              fprintf 往檔案中寫格式化資料
              fscanf 格式化讀取檔案中資料
              fread 以二進位制形式讀取檔案中的資料
              fwrite 以二進位制形式寫資料到檔案中去
              getw 以二進位制形式讀取一個整數
              putw 以二進位制形式存貯一個整數

    檔案狀態檢查函式 feof 檔案結束
              ferror 檔案讀/寫出錯
              clearerr 清除檔案錯誤標誌
              ftell 瞭解檔案指標的當前位置

      檔案定位函式 rewind 反繞
              fseek 隨機定位

# 檔案的開啟
 1.函式原型

FILE *fopen(char *pname,char *mode)

 2.功能說明
   按照mode 規定的方式,開啟由pname指定的檔案。若找不到由pname指定的相應檔案,就按以下方式之一處理:
(1) 此時如mode 規定按寫方式開啟檔案,就按由pname指定的名字建立一個新檔案;
(2) 此時如mode 規定按讀方式開啟檔案,就會產生一個錯誤。

開啟檔案的作用是:
(1)分配給開啟檔案一個FILE 型別的檔案結構體變數,並將有關資訊填入檔案結構體變數;
(2)開闢一個緩衝區;
(3)呼叫作業系統提供的開啟檔案或建立新檔案功能,開啟或建立指定檔案;
FILE *:指出fopen是一個返回檔案型別的指標函式;

 3.引數說明
pname:是一個字元指標,它將指向要開啟或建立的檔案的檔名字串。
mode:是一個指向檔案處理方式字串的字元指標。所有可能的檔案處理方式見表8.1

 4.返回值
   正常返回:被開啟檔案的檔案指標。
   異常返回:NULL,表示開啟操作不成功。

例如:

//定義一個名叫fp檔案指標
FILE *fp;
//判斷按讀方式開啟一個名叫test的檔案是否失敗
if((fp=fopen("test""r")) == NULL)//開啟操作不成功 { printf("The file can not be opened.\n");   exit(1);//結束程式的執行 }

 要說明的是:C語言將計算機的輸入輸出裝置都看作是檔案。例如,鍵盤檔案、螢幕檔案等。ANSI C標準規定,在執行程式時系統先自動開啟鍵盤、螢幕、錯誤三個檔案。這三個檔案的檔案指標分別是:標準輸入stdin、標準輸出stdout和標準出錯 stderr。

* 檔案的關閉

1. 函式原型

int fclose(FILE *fp);

2. 功能說明
  關閉由fp指出的檔案。此時呼叫作業系統提供的檔案關閉功能,關閉由fp->fd指出的檔案;釋放由fp指出的檔案型別結構體變數;返回操作結果,即0或EOF。

3. 引數說明
  fp:一個已開啟檔案的檔案指標。

4. 返回值
  正常返回:0。
  異常返回:EOF,表示檔案在關閉時發生錯誤。
例如:

int n=fclose(fp);

*檔案的讀寫操作

A. 從檔案中讀取一個字元
  1. 函式原型

int fgetc(FILE *fp);

  2. 功能說明
    從fp所指檔案中讀取一個字元。
  3. 引數說明
    fp:這是個檔案指標,它指出要從中讀取字元的檔案。
  4. 返回值
    正常返回: 返回讀取字元的程式碼。
    非正常返回:返回EOF。例如,要從"寫開啟"檔案中讀取一個字元時,會發生錯誤而返回一個EOF。
  5. 例項

【例8.1】顯示指定檔案的內容。

//程式名為:display.c
//執行時可用:display filename1 形式的命令列執行。顯示檔案filename1中的內容。例如,執行命令列display display.c將在螢幕上顯示display的原始碼。

//File display program.
#include <stdio.h>
void main(int argc,char *argv[]) //命令列引數
{
    int ch;//定義檔案型別指標
    FILE *fp;//判斷命令列是否正確
    if(argc!=2)
    {
        printf("Error format,Usage: display filename1\n");
        return; //鍵入了錯誤的命令列,結束程式的執行
    }
    //按讀方式開啟由argv[1]指出的檔案
    if((fp=fopen(argv[1],"r"))==NULL)
    {
        printf("The file <%s> can not be opened.\n",argv[1]);//開啟操作不成功
        return;//結束程式的執行
    }
    //成功打開了argv[1]所指檔案
    ch=fgetc(fp); //從fp所指檔案的當前指標位置讀取一個字元
    while(ch!=EOF) //判斷剛讀取的字元是否是檔案結束符
    {
        putchar(ch); //若不是結束符,將它輸出到螢幕上顯示
        ch=fgetc(fp); //繼續從fp所指檔案中讀取下一個字元
    } //完成將fp所指檔案的內容輸出到螢幕上顯示
    fclose(fp); //關閉fp所指檔案
}

B. 寫一個字元到檔案中去

1. 函式原型

int fputc(int ch,FILE *fp)

2. 功能說明
  把ch中的字元寫入由fp指出的檔案中去。
3. 引數說明
  ch:是一個整型變數,記憶體要寫到檔案中的字元(C語言中整型量和字元量可以通用)。
  fp:這是個檔案指標,指出要在其中寫入字元的檔案。
4. 返回值
  正常返回: 要寫入字元的程式碼。
  非正常返回:返回EOF。例如,要往"讀開啟"檔案中寫一個字元時,會發生錯誤而返回一個EOF。
5. 例項

【例8.2】將一個檔案的內容複製到另一個檔案中去。

//程式名為:copyfile.c
//執行時可用:copyfile filename1 filename2形式的命令列執行,將檔案filename1中的內容複製到檔案filename2中去。
//file copy program.
#include <stdio.h>
void main(int argc,char *argv[]) //命令列引數
{
    int ch;
    FILE *in,*out; //定義in和out兩個檔案型別指標
    if(argc!=3) //判斷命令列是否正確
    {
        printf("Error in format,Usage: copyfile filename1 filename2\n");
        return; //命令列錯,結束程式的執行
    }
    //按讀方式開啟由argv[1]指出的檔案
    if((in=fopen(argv[1],"r"))==NULL)
    {
        printf("The file <%s> can not be opened.\n",argv[1]);
        return; //開啟失敗,結束程式的執行
    }
    //成功打開了argv[1]所指檔案,再
    //按寫方式開啟由argv[2]指出的檔案
    if((out=fopen(argv[2],"w"))==NULL)
    {
        printf("The file %s can not be opened.\n",argv[2]);
        return; //開啟失敗,結束程式的執行
    }
    //成功打開了argv[2]所指檔案
    ch=fgetc(in); //從in所指檔案的當前指標位置讀取一個字元
    while(ch!=EOF) //判斷剛讀取的字元是否是檔案結束符
    {
        fputc(ch,out); //若不是結束符,將它寫入out所指檔案
        ch=fgetc(in); //繼續從in所指檔案中讀取下一個字元
    } //完成將in所指檔案的內容寫入(複製)到out所指檔案中
    fclose(in); //關閉in所指檔案
    fclose(out); //關閉out所指檔案
}

【例8.3】按十進位制和字元顯示檔案程式碼,若遇不可示字元就用井號"#"字元代替之。

//程式名為:dumpf.c
//執行時可用:dumpf filename1 形式的命令列執行。
// File dump program.
#include <stdio.h>
void main(int argc,char *argv[])
{
    char str[9];
    int ch,count,i;
    FILE *fp;
    if(argc!=2)
    {
        printf("Error format,Usage: dumpf filename\n");
        return;
    }
    if((fp=fopen(argv[1],"r"))==NULL)
    {
        printf("The file %s can not be opened.\n",argv[1]);
        return;
    }
    count=0;
    do{
        i=0;
        //按八進位制輸出第一列,作為一行八個位元組的首地址
        printf("%06o: ",count*8);
        do{
            // 從開啟的檔案中讀取一個字元
            ch=fgetc(fp);
            // 按十進位制方式輸出這個字元的ASCII碼
            printf("%4d",ch);
            // 如果是不可示字元就用"#"字元代替
            if(ch<' '||ch>'~') str[i]='#';
            // 如果是可示字元,就將它存入陣列str以便形成字串
            else str[i]=ch;
            // 保證每一行輸出八個字元
            if(++i==8) break;
        }while(ch!=EOF); // 遇到檔案尾標誌,結束讀檔案操作
        str[i]='\0'; // 在陣列str加字串結束標誌
        for(;i<8;i++) printf(" "); // 一行不足八個字元用空格填充
        printf(" %s\n",str); // 輸出字串
        count++; // 準備輸出下一行
    }while(ch!=EOF); // 直到檔案結束
    fclose(fp); // 關閉fp所指檔案
}

C. 從檔案中讀取一個字串

1. 函式原型
  char *fgets(char *str,int n,FILE *fp)
2. 功能說明
  從由fp指出的檔案中讀取n-1個字元,並把它們存放到由str指出的字元陣列中去,最後加上一個字串結束符'\0'。
3. 引數說明
  str:接收字串的記憶體地址,可以是陣列名,也可以是指標。
  n: 指出要讀取字元的個數。
  fp:這是個檔案指標,指出要從中讀取字元的檔案。
4. 返回值

正常返回:返回字串的記憶體首地址,即str的值。
非正常返回:返回一個NULL值,此時應當用feof()或ferror()函式來判別是讀取到了檔案尾,還是發生了錯誤。例如,要從"寫開啟"檔案中讀取字串,將
發生錯誤而返回一個NULL值。

D. 寫一個字串到檔案中去

1. 函式原型

int fputs(char *str,FILE *fp)

2. 功能說明
  把由str指出的字串寫入到fp所指的檔案中去。
3. 引數說明
  str:指出要寫到檔案中去的字串。
  fp:這是個檔案指標,指出字串要寫入其中的檔案。
4. 返回值
  正常返回: 寫入檔案的字元個數,即字串的長度。
  非正常返回:返回一個NULL值,此時應當用feof()或ferror()函式來判別是讀取到了檔案尾,還是發生了錯誤。例如,要往一個"讀開啟" 檔案中寫字串時,
會發生錯誤而返回一個NULL值。

5.例項

【例8.4】以下程式將一個檔案的內容附加到另一個檔案中去。

//程式名:linkfile.c
//執行時可用:linkfile filename1 filename2形式的命令列執行,將檔案filename2的內容附加在檔案filename1之後。
// file linked program.
#include <stdio.h>
#define SIZE 512
void main(int argc,char *argv[])
{
    char buffer[SIZE];
    FILE *fp1,*fp2;
    if(argc!=3)
    {
        printf("Usage: linkfile filename1 filename2\n");
        return;
    }
    // 按追加方式開啟argv[1] 所指檔案
    if((fp1=fopen(argv[1],"a"))==NULL)
    {
        printf("The file %s can not be opened.\n",argv[1]);
        return;
    }
    if((fp2=fopen(argv[2],"r"))==NULL)
    {
        printf("The file %s can not be opened.\n",argv[2]);
        return;
    }
    // 讀入一行立即寫出,直到檔案結束
    while(fgets(buffer,SIZE,fp1)!=NULL)
        printf("%s\n",buffer);
    while(fgets(buffer,SIZE,fp2)!=NULL)
        fputs(buffer,fp1);
    fclose(fp1);
    fclose(fp2);
    if((fp1=fopen(argv[1],"r"))==NULL)
    {
        printf("The file %s can not be opened.\n",argv[1]);
        return;
    }
    while(fgets(buffer,SIZE,fp1)!=NULL)
        printf("%s\n",buffer);
    fclose(fp1);
}

E. 往檔案中寫格式化資料

1.函式原型

int fprintf(FILE *fp,char *format,arg_list)

2.功能說明
  將變量表列(arg_list)中的資料,按照format指出的格式,寫入由fp指定的檔案。fprintf()函式與printf()函式的功能相同,只是printf()函式是將資料寫入螢幕檔案(stdout)。
3.引數說明
  fp:這是個檔案指標,指出要將資料寫入的檔案。
  format:這是個指向字串的字元指標,字串中含有要寫出資料的格式,所以該字串成為格式串。格式串描述的規則與printf()函式中的格式串相同。
arg_list:是要寫入檔案的變量表列,各變數之間用逗號分隔。
4.返回值
  無。
5. 例項

【8.5】下列程式的執行檔案為display.exe,執行時鍵入命令列:
   display [-i][-s] filename
下面的表格列出了命令列引數的含義及其功能:

//儲存檔名:save.txt
//程式程式碼如下:
// file display program.
#include <stdio.h>
void main()
{
    char name[10];
    int nAge,nClass;
    long number;
    FILE *fp;
    if((fp=fopen("student.txt","w"))==NULL)
    {
        printf("The file %s can not be opened.\n","student.txt");
        return;
    }
    fscanf(stdin,"%s %d %d %ld",name,&nClass,&nAge,&number);
    fprintf(fp,"%s %5d %4d %8ld",name,nClass,nAge,number);
    fclose(fp);
    if((fp=fopen("student.txt","r"))==NULL)
    {
        printf("The file %s can not be opened.\n","student.txt");
        return;
    }
    fscanf(fp,"%s %d %d %ld",name,&nClass,&nAge,&number);
    printf("name nClass nAge number\n");
    fprintf(stdout,"%-10s%-8d%-6d%-8ld\n",name,nClass,nAge,number);
    fclose(fp);
}

G. 以二進位制形式讀取檔案中的資料

1. 函式原型

int fread(void *buffer,unsigned sife,unsigned count,FILE *fp)

2. 功能說明
  從由fp指定的檔案中,按二進位制形式將sife*count個數據讀到由buffer指出的資料區中。
3. 引數說明
buffer:這是一個void型指標,指出要將讀入資料存放在其中的儲存區首地址。
sife:指出一個數據塊的位元組數,即一個數據塊的大小尺寸。
count:指出一次讀入多少個數據塊(sife)。
fp:這是個檔案指標,指出要從其中讀出資料的檔案。
4.返回值
  正常返回:實際讀取資料塊的個數,即count。
  異常返回:如果檔案中剩下的資料塊個數少於引數中count指出的個數,或者發生了錯誤,返回0值。此時可以用feof()和ferror()來判定到底出現了什麼
情況。

H. 以二進位制形式寫資料到檔案中去

1. 函式原型

int fwrite(void *buffer,unsigned sife,unsigned count,FILE *fp)

2. 功能說明
  按二進位制形式,將由buffer指定的資料緩衝區內的sife*count個數據寫入由fp指定的檔案中去。
3. 引數說明
buffer:這是一個void型指標,指出要將其中資料輸出到檔案的緩衝區首地址。
sife:指出一個數據塊的位元組數,即一個數據塊的大小尺寸。
count:一次輸出多少個數據塊(sife)。
fp:這是個檔案指標,指出要從其中讀出資料的檔案。
4.返回值
  正常返回:實際輸出資料塊的個數,即count。
  異常返回:返回0值,表示輸出結束或發生了錯誤。
5.例項

【例8.7】

#include <stdio.h>
#define SIZE 4
struct worker
{ int number;
    char name[20];
    int age;
};
void main()
{
    struct worker wk;
    int n;
    FILE *in,*out;
    if((in=fopen("file1.txt","rb"))==NULL)
    {
        printf("The file %s can not be opened.\n","file1.txt");
        return;
    }
    if((out=fopen("file2.txt","wb"))==NULL)
    {
        printf("The file %s can not be opened.\n","file2.txt");
        return;
    }
    while(fread(&wk,sizeof(struct worker),1,in)==1)
        fwrite(&wk,sizeof(struct worker),1,out);
    fclose(in);
    fclose(out);
}

I. 以二進位制形式讀取一個整數

1. 函式原型

int getw(FILE *fp)

2. 功能說明
  從由fp指定的檔案中,以二進位制形式讀取一個整數。
3. 引數說明
  fp:是檔案指標。
4. 返回值
  正常返回:所讀取整數的值。
  異常返回:返回EOF,即-1。由於讀取的整數值有可能是-1,所以必須用feof()或ferror()來判斷是到了檔案結束,還是出現了一個出錯。
5. 例項

【例8.8】

#include <stdio.h>
void main(int argc,char *argv[])
{
    int i,sum=0;
    FILE *fp;
    if(argc!=2)
    {
        printf("Command error,Usage: readfile filename\n");
        exit(1);
    }
    if(!(fp=fopen(argv[1],"rb")))
    {
        printf("The file %s can not be opened.\n",argv[1]);
        exit(1);
    }
    for(i=1;i<=10;i++) sum+=getw(fp);
    printf("The sum is %d\n",sum);
    fclose(fp);
}

J. 以二進位制形式存貯一個整數

1.函式原型

int putw(int n,FILE *fp)

2. 功能說明
 以二進位制形式把由變數n指出的整數值存放到由fp指定的檔案中。
3. 引數說明
 n:要存入檔案的整數。
 fp:是檔案指標。
4. 返回值
 正常返回:所輸出的整數值。
 異常返回:返回EOF,即-1。由於輸出的整數值有可能是-1,所以必須用feof()或ferror()來判斷是到了檔案結束,還是出現了一個出錯。
5. 例項

【例8.9】

#include <stdio.h>
void main(int argc,char *argv[])
{
    int i;
    FILE *fp;
    if(argc!=2)
    {
        printf("Command error,Usage: writefile filename\n");
        return;
    }

    if(!(fp=fopen(argv[1],"wb")))
    {
        printf("The file %s can not be opened.\n",argv[1]);
        return;
    }
    for(i=1;i<=10;i++) printf("%d\n", putw(i,fp));
    fclose(fp);
}

* 檔案狀態檢查

A. 檔案結束
(1) 函式原型

int feof(FILE *fp)

(2) 功能說明
   該函式用來判斷檔案是否結束。
(3) 引數說明
   fp:檔案指標。
(4) 返回值
   0:假值,表示檔案未結束。
   1:真值,表示檔案結束。
(5) 例項

【例8.10】

#include <stdio.h>
void main(int argc,char *argv[])
{
    FILE *in,*out;
    char ch;
    if(argc!=3)
    {
        printf("Usage: copyfile filename1 filename2\n");
        return;
    }
    if((in=fopen(argv[1],"rb"))==NULL)
    {
        printf("The file %s can not be opened.\n",argv[1]);
        return;
    }
    if((out=fopen(argv[2],"wb"))==NULL)
    {
        printf("The file %s can not be opened.\n",argv[2]);
        return;
    }
    while(!feof(in))
    {
        ch=fgetc(in);
        if(ferror(in))
        {
            printf("read error!\n");
            clearerr(in);
        }
        else
        {
            fputc(ch,out);
            if(ferror(out))
            {
                printf("write error!\n");
                clearerr(out);
            }
        }
    }
    fclose(in);
    fclose(out);
}

B. 檔案讀/寫出錯
(1) 函式原型

int ferror(FILE *fp)

(2) 功能說明
   檢查由fp指定的檔案在讀寫時是否出錯。
(3) 引數說明
   fp:檔案指標。
(4) 返回值
   0:假值,表示無錯誤。
   1:真值,表示出錯。

C. 清除檔案錯誤標誌

(1) 函式原型

void clearerr(FILE *fp)

(2) 功能說明
   清除由fp指定檔案的錯誤標誌。
(3) 引數說明
   fp:檔案指標。
(4) 返回值
   無。
(5) 例項

【例8.12】

#include <stdio.h>
void main(int argc,char *argv[])
{
    FILE *in,*out;
    char ch;
    if(argc!=3)
    {
        printf("Usage: copyfile filename1 filename2\n");
        return;
    }
    if((in=fopen(argv[1],"rb"))==NULL)
    {
        printf("The file %s can not be opened.\n",argv[1]);
        return;
    }
    if((out=fopen(argv[2],"wb"))==NULL)
    {
        printf("The file %s can not be opened.\n",argv[2]);
        return;
    }
    while(!feof(in))
    {
        ch=fgetc(in);
        if(ferror(in))
        {
            printf("read error!\n");
            clearerr(in);
        }
        else
        {
            fputc(ch,out);
            if(ferror(out))
            {
                printf("write error!\n");
                clearerr(out);
            }
        }
    }
    fclose(in);
    fclose(out);
}

D. 瞭解檔案指標的當前位置
(1) 函式原型

long ftell(FILE *fp)

(2) 功能說明
   取得由fp指定檔案的當前讀/寫位置,該位置值用相對於檔案開頭的位移量來表示。
(3) 引數說明
   fp:檔案指標。
(4) 返回值
   正常返回:位移量(這是個長整數)。
   異常返回:-1,表示出錯。
(5) 例項

* 檔案定位

A. 反繞
(1) 函式原型

void rewind(FILE *fp)

(2) 功能說明
   使由檔案指標fp指定的檔案的位置指標重新指向檔案的開頭位置。
(3) 引數說明
   fp:檔案指標。
(4) 返回值
   無。
(5) 例項

【例8.14】

#include <stdio.h>
void main()
{
    FILE *in,*out;
    in=fopen("filename1","r");
    out=fopen("filename2","w");
    while(!feof(in)) fputc(fgetc(in),out);
    rewind(out);
    while(!feof(in)) putchar(fgetc(in));
    fclose(in);
    fclose(out);
}

B. 隨機定位
(1) 函式原型

int fseek(FILE *fp,long offset,int base)

(2) 功能說明
   使檔案指標fp移到基於base的相對位置offset處。
(3)引數說明
   fp:檔案指標。
   offset:相對base的位元組位移量。這是個長整數,用以支援大於64KB的檔案。
   base:次引數只能是檔案頭,檔案當前位置,檔案尾,分別用SEEK_SET(0),SEEK_CUR(1),SEEK_END(2)表示。檔案位置指標移動的基準位置,是計算檔案位置指標     位移的基點。ANSI C定義了base的可能取值,以及這些取值的符號常量。

(4)返回值

  正常返回:當前指標位置。
  異常返回:-1,表示定位操作出錯。

(5)例項
【例8.15】

#include <stdio.h>
#include <string.h>
struct std_type
{
    int num;
    char name[20];
    int age;
    char class;
}stud;
int cstufile()
{
    int i;
    FILE *fp;
    if((fp=fopen("stufile","wb"))==NULL)
    {
        printf("The file can't be opened for write.\n");
        return 0;
    }
    for(i=1;i<=100;i++)
    {
        stud.num=i;
        strcpy(stud.name,"aaaa");
        stud.age=17;
        stud.class='8';
        fwrite(&stud,sizeof(struct std_type),1,fp);
    }
    fclose(fp);
    return 1;
}
void main()
{
    int n;
    FILE *fp;
    if(cstufile()==0) return;
    if((fp=fopen("stufile","rb"))==NULL)
    {
        printf("The file can not be opened.\n");
        return;
    }
    for(n=0;n<100;n+=2)
    {
        fseek(fp,n*sizeof(struct std_type),SEEK_SET);
        fread(&stud,sizeof(struct std_type),1,fp);
        printf("%10d%20s%10d%4c\n",stud.num,stud.name,stud.age,stud.class);
    }
    fclose(fp);
}

* 關於exit()函式
1. 函式原型

void exit(int status)

2. 功能說明
  exit()函式使程式立即終止執行,同時將緩衝區中剩餘的資料輸出並關閉所有已經開啟的檔案。
3. 引數說明
  status:為0值表示程式正常終止,為非0值表示一個定義錯誤。
4. 返回值
  無。

* 關於feof()函式
1. 函式原型

int feof(FILE *fp)

2. 功能說明
  在文字檔案(ASCII檔案)中可以用值為-1的符號常量EOF來作為檔案的結束符。但是在二進位制檔案中-1往往可能是一個有意義的資料,因此不能用它來作為檔案的結束標誌。為了能有效判別檔案是否結束,ANSI C提供了標準函式feof(),用來識別檔案是否結束。
3. 引數說明
  fp:檔案指標。
4. 返回值
  返回為非0值:已到檔案尾。
  返回為0值:表示還未到檔案尾。

相關推薦

c語言檔案操作函式

C語言中沒有輸入輸出語句,所有的輸入輸出功能都用 ANSI C提供的一組標準庫函式來實現。檔案操作標準庫函式有:       檔案的開啟操作 fopen 開啟一個檔案       檔案的關閉操作 fclose 關閉一個檔案       檔案的讀寫操作 fgetc 從檔案中讀取一個字元            

C++檔案操作函式

轉載:http://blog.csdn.net/mafuli007/article/details/7271975 C++通過以下幾個類支援檔案的輸入輸出 (1)      ofstream:寫操作,輸出檔案類; (2)      ifstream:讀操作,輸入檔案

C語言檔案操作函式總結——超詳細

版權宣告 本文原創作者:谷哥的小弟 作者部落格地址:http://blog.csdn.net/lfdfhl 檔案與流 在C語言中有三種標準流: stdin(standard input stream)標準輸入流。在大多數環境中為從鍵盤輸入;scanf( )和getchar( )

c語言檔案操作函式講解

c語言檔案操作 什麼是檔案 磁碟上的檔案是檔案。包含程式檔案和資料檔案。 程式檔案:包括.c檔案,和可執行檔案(exe.檔案)。 資料檔案:程式從檔案中讀取,或者輸出檔案,比如存放資料的txt檔案。 檔名 檔名包含檔名+檔案主幹+檔案字尾。 檔案型別 檔案型別有文字檔

C語言檔案操作函式大全

clearerr(清除檔案流的錯誤旗標) 相關函式 feof表頭檔案 #include<stdio.h> 定義函式 void clearerr(FILE * stream); 函式說明 clearerr()清除引數stream指定的檔案流所使用的錯誤旗標。返回值 fclose(關閉檔案) 相關函

LoadRunner檔案操作函式

涉及的函式彙總: 檔案的開啟操作 fopen 開啟一個檔案 檔案的關閉操作 fclose 關閉一個檔案 檔案的讀寫操作 fgetc 從檔案中讀取一個字元          fputc 寫一個字元到檔案中去      

C語言檔案操作

* 檔案狀態檢查 A. 檔案結束 (1) 函式原型 int feof(FILE *fp) (2) 功能說明    該函式用來判斷檔案是否結束。 (3) 引數說明    fp:檔案指標。 (4) 返回值    0:假值,表示檔案未結束。    1:真值,表示檔案結束。

C語言 把字串寫入檔案 fprintf函式

把把字串寫入檔案,基本示例如下: FILE *fp; char s[]= "hello world!"; char c = '\n'; fp = fopen("file.txt","a");

Android NDK——必知必會之JNI的C++操作函式和小結(三)

引言 上一篇講解了一些關於JNI和NDK的必知必會的理論知識和機制,由於篇幅問題把關於JNI的重要的函式放到這篇,具體使用留到下一篇,此係列文章基連結: 一、JNI中的函式概述 在JNI層我們基本上都是通過env指標來呼叫jni.h標頭檔案裡定義的函式,JNI

C語言檔案操作標準庫函式與Linux系統函式效率比較

我們都知道,C語言在UNIX/Linux系統下有一套系統呼叫(系統函式),比如檔案操作open()、close()、write()、read()等,而標準C語言的庫函式中也有一套對檔案的操作函式fopen()、fclose()、fwrite()、fread()等

C文件操作基礎·········關於fopen,fwrite,,fseek,fgetc的使用。

基礎 user fseek fse app c2c etc 基礎詳解 open 05Y1L7j蝕3UKAhttp://huiyi.docin.com/sina_6355806917 Q托9MCS南9善EU晃喲http://huiyi.docin.com/qfptt159

C語言do while迴圈

do…while 迴圈不經常使用,其主要用於人機互動。它的格式是: do { 語句; } while (表示式); 注意,while 後面的分號千萬不能省略。 do…while 和 while 的執行過程非常相似,唯一的區別是:“do…while 是先執行一次迴圈體,然後再判別表示式

C語言檔案操作與Python檔案操作的比較

無論是在C語言中還是在Python中,對檔案的操作都是直接實現了計算機內部與外部之間的互動; 通過將資料寫入檔案可以更好地實現資料的儲存,而不會在程式結束之後資料隨之消失, 而通過檔案的讀取操作則可以更好地避免自己講大量資料的手動輸入程式。   本篇文章主要介紹C語言以

C語言的結構體(轉載只是為了查閱方便,若有侵權立刪)

C語言的結構體詳解 結構體(struct) 1、定義   一般格式為:          struct 結構名          {    

C語言檔案操作 和 預編譯命令

//read檔案 int main(){ char *path = "D:\\friends.txt"; FILE *fp = fopen(path, "r"); char buff[500]; while (fgets(buff,50,fp)){ printf("%s\n", b

結構體指標,C語言結構體指標

結構體指標,可細分為指向結構體變數的指標和指向結構體陣列的指標。 指向結構體變數的指標 前面我們通過“結構體變數名.成員名”的方式引用結構體變數中的成員,除了這種方法之外還可以使用指標。前面講過,&student1 表示結構體變數 student1 的首地址,即 student1 第一個項的地址

C語言正則表示式

標準的C和C++都不支援正則表示式,但有一些函式庫可以輔助C/C++程式設計師完成這一功能,其中最著名的當數Philip Hazel的Perl-Compatible Regular Expression庫,許多Linux發行版本都帶有這個函式庫。   C語言處理正則表示式常用的函

c檔案操作函式:fprintf,fread,fwrite,fseek,ftell,fopen,fclose,fflush以及獲取檔案長度示例

Date: 2018.9.20 1、參考 2、 fprintf 3、fread 作用:從一個檔案流中讀取資料。 Read block of data from stream Reads an ar

C語言檔案操作之fgets()

C語言檔案操作之fgets() 原創  2013年01月25日 11:57:00 標籤: C語言 / fgets... / 檔案操作函式 142460 &

C語言檔案操作

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define MAX_LINE_LENGTH 100 int main() { FILE* input = fopen("main.c",