fread和fgets

#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;

}

 

你可能感兴趣的:(read)