c语言读写函数简要说明汇总

C/C++ 读取大文件的方法有以下几种:

  1. 使用 fread() 函数:fread() 函数可以一次性读取一个文件的全部内容,但是如果文件过大,可能会导致内存溢出
  2. 使用 fgets() 函数:fgets() 函数可以一次性读取一行文件内容,可以避免内存溢出的问题,但是读取速度会比较慢。
  3. 使用 mmap() 函数:mmap() 函数可以将文件映射到内存中,可以提高读取速度,但是也会占用大量内存。

  对于上述的三种读取方法c语言能用上的基本就是前两种,第三种的具体使用需要调用头文件<sys/mman.h>,具体操作需要查相关资料。

fgetc与fgets的区别

区别:

1、fgetc ()用于从打开的文件中读取一个字符,并返回一个包含有一个字符的字符串;而fgets ()用于从打开的文件中读取一行数据,并返回指定长度的字符串。

2、fgetc ()函数只接受一个参数,而fgets ()函数可接受两个参数。

写入文件函数

1、fwrite(const void *buffer, size_t  size,  size_t count , FILE *stream)

fwrite(buffer,size,count,fp); (易于理解)

buffer : 数据存储的地址

size : 要读取的字节的大小

count : 要读取多少个size大小

stream : 等待被读取的数据源,它是一个指向FILE结构的文件指针

至于返回值,如果成功执行,则返回写入元素的个数,如果不和nmemb相等,则表示出错。

fread()与fwrite()函数的参数相同。(通过使用fread()函数,来读取通过fwrite()写入的文件数据)

2、fputs(const char *s,FILE *stream)

功能:  将s中的字符串写到文件中;

参数  s 字符串的首地址。

           stream 文件

返回值:

           成功返回大于0的数

           失败返回EOF(-1)

fputs() 和 puts() 的小差异

1、puts() 只能向标准输出流输出,而 fputs() 可以向任何流输出。

2、使用 puts() 时,系统会在自动在其后添加换行符;而使用 fputs() 时,系统不会自动添加换行符。

fscanf()和fprintf()函数:格式化读写函数

fscanf 函数原型为 int fscanf(FILE * stream, const char * format, [argument...]); 其功能为根据数据格式(format)从输入流(stream)中读入数据,存储到argument中,遇到空格和换行时结束

文件定位必不可少的函数fseek

fseek函数的结构组成

int fseek( FILE *stream, long offset, int origin );
   第一个参数stream为文件指针
   第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移
  第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或                 SEEK_SET 
  SEEK_SET: 文件开头
  SEEK_CUR: 当前位置
  SEEK_END: 文件结尾
  其中SEEK_SET,SEEK_CUR和SEEK_END依次为0,1和2.
  简言之:
  fseek(fp,10,0);fseek(fp,10,SEEK_SET)把fp指针移动到离文件开头100字节处;
  fseek(fp,10,1);fseek(fp,10,SEEK_CUR)把fp指针移动到离文件当前位置100字节处;
  fseek(fp,10,2);fseek(fp,10,SEEK_END)把fp指针退回到离文件结尾100字节处

清除标记重新定位指针——rewind ()函数的用法

rewind ()函数用于将文件指针重新指向文件的开头,同时清除和文件流相关的错误和eof标记,相当于调用fseek (stream, 0, SEEK_SET)

用法rewind (FILE *stream)

获取文件大小——ftell函数

函数 ftell 用于得到文件位置指针当前位置相对于文件首的偏移字节数

用法ftell(FILE *stream)

fopen函数打开方式一览表

1、“r”以只读方式打开一个文件;

2、“w”以只写方式打开一个文件;

3、“a”打开一个文件追加;

4、“rb”以只读方式打开一个二进制文件;

5、“rw”以只写方式打开一个二进制文件;

6、“ra”打开一个二进制文件追加;

7、”r+”以读写方式打开一个文件;

8、“w+”以读写方式建立一个文件;

9、“a+”以读写方式打开一个文件追加;

10、“rb+”以读写方式打开一个二进制文件;

11、“wb+”以读写方式建立一个二进制文件;

12、“ab+”以读写方式打开一个二进制文件追加。

r(read): 读 w(write): 写 a(append): 追加 t(text): 文本文件,可省略不写 b(banary): 二进制文件 +: 读和写

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值