C語言中資料輸入輸出到檔案操作freopen()函數(1)

來源:互聯網
上載者:User

標籤:fclose   使用方法   螢幕   空值   ret   考試成績   輸入   getc   定義   

例題一、把短句 “Hello World!” 儲存到磁碟檔案f1.txt中。

#include <stdio.h>#include <stdlib.h>int main(){    FILE *fp;                                     /* 定義檔案指標*/    if( ( fp = fopen("f1.txt", "w") ) == NULL){    /* 開啟檔案 */           printf("File open error!\n");           exit(0);    }    fprintf( fp, "%s", "Hello World! " );            /* 寫檔案 */            if( fclose( fp ) ){                         /* 關閉檔案 */        printf( "Can not close the file!\n" );        exit(0);    }    return 0;}

用檔案指標指示檔案緩衝區中具體讀寫的位置
FILE   *fp;

自訂類型(typedef):

1、將C語言中的已有類型(包括已定義過的自訂類型)重新命名
2、新的名稱可以代替已有資料類型
3、常用於簡化對複雜資料類型定義的描述
typedef  <已有類型名>  <新類型名>;

typedef  int   INTEGER;           int  i, j;       <====>    INTEGER  i, j;  typedef   int*  POINT;           int*  p1;       <====>    POINT  p1;  

自訂類型(typedef)的使用方法

1、定義變數            int  i
2、變數名?新類型名      int ? INTEGER
3、加上 typedef                 typedef  int  INTEGER
4、用新類型名定義變數        INTEGER  i;


int NUM[10]
typedef   int  NUM[10]
NUM   a  <===>  int a[10]

 例題二

已知一個資料檔案f.txt中儲存了5個學生的電腦等級考試成績,包括學號、姓名和分數,檔案內容如下,請將檔案的內容讀出並顯示到螢幕中。
 
301101  張文   91
301102  陳慧   85
301103  王衛東  76
301104  鄭偉   69
301105  郭溫濤   55

#include "stdio.h"int main(void){       FILE * fp;                                        /* 定義檔案指標*/       long num;       char stname[20];       int  score;      if((fp = fopen("f.txt", "r")) == NULL){      /* 開啟檔案  */           printf("File open error!\n");           exit(0);    }        while( !feof(fp) ){           fscanf(fp, "%ld%s%d", &num, stname, &score);              printf("%ld    %s %d\n", num, stname, score);      };    if( fclose(fp) ){                        /* 關閉檔案  */            printf( "Can not close the file!\n" );            exit(0);    }}
if((fp = fopen("f.txt", "r")) == NULL){    printf("File open error!\n");    exit(0);}fopen("檔案名稱","檔案開啟檔案")函數fopen() 的傳回值1、執行成功,則返回包含檔案緩衝區等資訊的FILE型地址,賦給檔案指標fp2、不成功,則返回一個NULL(空值)   exit(0):關閉所有開啟的檔案,並終止程式的執行   參數0表示程式正常結束;非0參數通常表示不正常的程式結束

fp = fopen("f.txt", "r")檔案開啟檔案參數表

 

檔案讀寫與開啟檔案

if 讀檔案    指定的檔案必須存在,否則出錯;if 寫檔案(指定的檔案可以存在,也可以不存在)    if  以 "w" 方式寫        if 該檔案已經存在            原檔案將被刪去重建立立;        else             按指定的名字建立一個檔案;    else if  以 "a" 方式寫        if 該檔案已經存在           寫入的資料將被添加到指定檔案原有資料的後面,不會刪去原來的內容;        else             按指定的名字建立一個檔案(與“w”相同);if  檔案同時讀和寫        使用 "r+"、"w+" 或 "a+" 開啟檔案 

關閉檔案

if( fclose(fp) ){    printf( "Can not close the file!\n" );    exit(0);}fclose(檔案指標)把緩衝區中的資料寫入磁碟扇區,確保寫檔案的正常完成釋放檔案緩衝區單元和FILE結構體,使檔案指標與具體檔案脫鉤。函數fclose() 的傳回值返回0:正常關閉檔案返回非0:無法正常關閉檔案

檔案複製

已知一個文本資料檔案f1.txt,請將該檔案複製一份,儲存為f2.txt。

建立一個文字檔f1.txt,將該檔案與來源程式放在同一目錄下,執行程式,觀察結果。

#include <stdio.h>int main(void){       FILE *fp1,*fp2;       char c;    if(( fp1 = fopen( "f1.txt", "r" )) == NULL)    {        printf(" File open error!\n" );        return 0;       }       if(( fp2 = fopen( "f2.txt", "w" )) == NULL)    {           printf(" File open error!\n" );           return 0;       }       while( !feof( fp1 ) ){         c = fgetc( fp1 );         fputc(c, fp2);       }       fclose( fp1 );       fclose( fp2 );       return 0;}

開啟多個檔案

if((fp1 = fopen(f1.dat, "r")) == NULL){    printf("File open error!\n");    exit(0);}if((fp2=fopen("f2.dat", "w")) == NULL){    printf("File open error!\n");       exit(0);}C語言允許同時開啟多個檔案不同的檔案對應不同的檔案指標不允許同一個檔案在關閉前再次開啟

 

C語言中資料輸入輸出到檔案操作freopen()函數(1)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.