c语言打开文本文件一次性读取所有内容
c语言编程中,读取文件这个算是基本工了。
网上大部分文章都是按行或者按字符,循环读取,我觉得这样编程效率不高(其实最终运行起来,所有方法都是I/O循环读取),这里分享一个一次性读取所有内容的办法,代码看上去会稍微间接些,就是用fread函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <stdio.h> #include <stdlib.h> main() { FILE * fileStream; long fileSize; //先初始化文件指针 fileStream = fopen("/path/to/the/file", "rb"); //先获取文件大小,以分配文本流空间 fseek(fileStream, 0L, SEEK_END); fileSize = ftell(fileStream)+1; // 重置文件指针到文件流头部,否则再次使用时会出错 rewind(fileStream); //初始化文本流内存空间,这个是必须的,否则会内存越界 char *stringPointer= (char *)malloc((fileSize+1)*sizeof(char)); //一次性读取所有内容 fread(stringPointer, fileSize,1, fileStream); //关闭文件 fclose(fileStream); //接着,拿着stringPointer这个指针指向的内容,你就可以为所欲为了 :p } |
近期评论