c語言檔案和特殊修飾符

來源:互聯網
上載者:User

標籤:

static和extern:

 static修飾變數(可以修飾局部變數),只有包含那個變數定義的原始碼檔案可以訪問(內部變數)

 延長局部變數的生命週期,從程式啟動到退出

 作用:static定義的變數範圍會延長

      static定義變數的語句只會被執行一次

 extern定義的變數哪個源檔案都可以使用,只要聲明了就可以(外部變數)

 extern不可以修飾局部變數

 

 static對全域變數的作用

    static修飾的全域變數只能在當前檔案中使用,而不能在其他檔案中使用

 

 static 修飾的函數是內建函式(只能在定義的檔案中使用)

 extern 修飾的函數可以在內部和外部使用(可以在標頭檔中聲明也可以在使用之前聲明)

12)檔案操作:

fopen函數用來開啟一個檔案,一般形式為:

 檔案指標變數名 = fopen(檔案名稱,檔案使用方式)

 FILE *fp = NULL;

 fp = fopen ("a.txt", "r"); //以唯讀方式開啟檔案

    if(fp != NULL){

        //操作檔案

    }else{

        //提示使用者

    }

 fclose(fp);

 正常關閉檔案fclose返回0,如果返回其它則關閉出錯。如果沒有關閉,則導致檔案寫入失敗

 

 檔案操作步驟:

 1) 建立檔案指標

    FILE *fp = NULL;

 2) 開啟檔案

    fopen(檔案名稱,操作方式);

    如果開啟成功,返迴文件首地址,失敗返回NULL;

 

 字元讀寫函數:

 fputc(字元量,檔案指標);//待寫入的字元量可以是字元常量或變數

 fputc(‘a‘, fp);

 例:

 char ch = ‘X‘;

 FILE *fp = NULL;

 fp = fopen("fputs.txt", "w");

 if(fp != NULL){

    fputc(ch, fp);

    printf("寫入成功");

    //ch = fget(fp);

 }

 fclose(fp);

 

 char s = fgetc(fp);

 while(s != EOF){   //EOF檔案末尾的標誌

    putchar(s);

    s = fgetc(fp);  //系統自動讀取下一個字元

 }

 

 char ch;

 FILE *fp = fopen("inputString.txt", "w+");

 if(fp = NULL){

    printf("請輸入字串:");

    ch = getchar();

    int count = 0;

    while(ch != ‘\n‘){

        count++;

        fputc(ch, fp);

        ch = getchar();

    }

    printf(" 一 共輸入了%d個字元\n", count);

 

    rewind(fp);  //把檔案指標重新指向檔案頭

    ch = fgetc(fp);

    while(ch != EOF){

        putchar(ch);

        ch = fgetc(fp);

    }

 fclose(fp);

 return 0;

 }

 

 count = fputs(str, fp);//count返回本次寫入字串長度

 

 char str[50];                  //fgets讀取時,當檔案內容讀取完畢時,會自動加上\0

 fget(str, sizeof(str), fp);    //fgets讀取時,當讀取到\n或EOF時,讀取結束

 

 

 char *s = "asdfasd";

 fputs(s, fp);

 

 char str[3];//長度為3,一個漢子讀取一半,長度為4全部讀取

 fgets(str, sizeof(str), fp);

 

 fread(buffer, size, count, fp)

 fwrite(buffer, size, count, fp)

 buffer:表示存放輸入輸出資料的首地址。

 size:表示資料區塊的位元組數

 count:表示要讀寫的資料區塊塊數

 fp:表示檔案指標

 

 int a= 1, b = 2;

 fprintf(fp,"%d#%d;", a, b);

 fscanf(fp, "%d,%d", &arr[i][0], &arr[i][1]);

 

 struct Struct stu;

 fseek(檔案指標,位移量,起始點)

 指標定位:

 fseek(fp, sizeof(struct Student), SEEK_SET);     //SEEK_SET檔案首

 從檔案中讀取資訊:

 freak(&str, sizeof(struct Student), 1, fp);

 

c語言檔案和特殊修飾符

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.