fread和fgets

來源:互聯網
上載者:User
#include <stdio.h>/*fread:以位元組位計算長度,按照指定的長度和次數讀取資料,遇到結尾或完成指定長度讀取後停止.     fgets:整行讀取,遇到斷行符號換行或結尾停止.在文本方式時使用.   其實文本和二進位的差別就在於讀取的資料,文本方式會預設為是ASCII碼,二進位方式則原樣將資料讀出.所以文本時候的格式控制如斷行符號,定位字元等,二進位的時候是不能有效自動判斷的。     他們的效率要看具體的程式和演算法的,否則差別並不會很大.其中fread   最快.因為可以指定讀取長度.能夠有效減少I/O操作,硬碟讀取才是檔案操作最耗時的部分.*/int main(int argc, char *argv[]){    FILE *stream;        if ((stream = fopen("C:/Users/wen/Desktop/test.txt", "rb")) == NULL) {                fprintf(stderr,"Cannot open output file.\n");                return 1;        }            char data[5];          //從一個檔案流中讀資料,讀取5個元素,每個元素1位元組.        while(fread(data, 1,sizeof(data), stream) != 0)    {                       printf("%s",data);        }    //一次從檔案中讀取4個位元組資料到data數組中        /*while (fgets(data,5,stream)!=NULL) {                printf("%s",data);        }*/    return 0;}

 

聯繫我們

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