PowerRC's Blog

Posted by:
PowerRC

码农,吃货,偶尔飙车和摄影,应该属于危险人物。

797

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

}

版权申明

若文中未注明,则本文由 PowerRC 原创,转载请注明出处。

分享

相关文章

  • 还没有相关文章

发表评论

*

code

back up ↑