回覆列表
  • 1 # 使用者7866562036910

    在C語言中,檔案操作都是由庫函式來完成的。

    要讀取一個txt檔案,首先要使用檔案開啟函式fopen()。

    fopen函式用來開啟一個檔案,其呼叫的一般形式為: 檔案指標名=fopen(檔名,使用檔案方式) 其中,“檔案指標名”必須是被說明為FILE 型別的指標變數,“檔名”是被開啟檔案的檔名。 “使用檔案方式”是指檔案的型別和操作要求。“檔名”是字串常量或字串陣列。

    其次,使用檔案讀寫函式讀取檔案。

    在C語言中提供了多種檔案讀寫的函式:

    ·字元讀寫函式 :fgetc和fputc

    ·字串讀寫函式:fgets和fputs

    ·資料塊讀寫函式:freed和fwrite

    ·格式化讀寫函式:fscanf和fprinf

    最後,在檔案讀取結束要使用檔案關閉函式fclose()關閉檔案。

    下面以格式化讀寫函式fscanf和fprintf為例,實現對檔案A.txt(各項資訊以空格分割)的讀取,並將它的資訊以新的格式(用製表符分割各項資訊)寫入B.txt,實現對A.txt的處理。

    C語言源程式如下所示:

    #include

    #include

    #include

    typedef struct student{

    char name[32];

    int no;

    char sex[16];

    float score;

    } stu;

    int main(int argc, char* argv[])

    {

    //開啟檔案

    FILE * r=fopen("A.txt","r");

    assert(r!=NULL);

    FILE * w=fopen("B.txt","w");

    assert(w!=NULL);

    //讀寫檔案

    stu a[128];

    int i=0;

    while(fscanf(r,"%s%d%s%f",a[i].name,&a[i].no,a[i].sex,&a[i].score)!=EOF)

    {

    printf("%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score);//輸出到顯示器螢幕

    fprintf(w,"%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score);//輸出到檔案B.txt

    i++;

    }

    //關閉檔案

    fclose(r);

    fclose(w);

    system("pause");

    return 0;

    }

  • 2 # 使用者8976220875008

    明確的講C中不存在字串這個基本型別,第三方擴充的除外,所以字元都是存放在字元數組裡面的,以/0結束,所以擷取字串操作就是對字元陣列的操作,從陣列的下標第幾個開始,讀入多少,要判斷不要讀取溢位 (跑到/0後面了) ,把讀取的字元存放到另一個字元數組裡面最後以/0結尾

  • 中秋節和大豐收的關聯?
  • 讓每個夢都在夢中驚醒?