学习笔记-C语言-文件读写

1、fopen

FILE *fopen(char *filename, *type);

(1)char *filename为文件路径和名称格式:

FILE *fp;
fp=("a.txt","r");

是指在当前目录下打开文件a.txt。所以路径又分为绝对路径和相对路径。这是相对路径,下面是绝对路径:

fp=("c:\\hzk16',"rb")

(2)*type是打开文件的类型

"r"            打开文字文件只读(文件已存在)      
"w"           创建文字文件只写(覆盖重写)
"a"           增补, 如果文件不存在则创建一个     
"r+"          打开一个文字文件读/写        
"w+"         创建一个文字文件读/写          
"a+"         打开或创建一个文件增补          
"b"           二进制文件(可以和上面每一项合用)          
"t"           文这文件(默认项)  

“rt”      只读打开一个文本文件,只允许读数据 
“wt”      只写打开或建立一个文本文件,只允许写数据
“at”      追加打开一个文本文件,并在文件末尾写数据
“rb”      只读打开一个二进制文件,只允许读数据
“wb”       只写打开或建立一个二进制文件,只允许写数据
“ab”       追加打开一个二进制文件,并在文件末尾写数据
“rt+”      读写打开一个文本文件,允许读和写
“wt+”      读写打开或建立一个文本文件,允许读写
“at+”      读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+”      读写打开一个二进制文件,允许读和写 
“wb+”      读写打开或建立一个二进制文件,允许读和写
“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据

在这里,

r(read): 读

w(write): 写

a(append): 追加

t(text): 文本文件,可省略不写

b(banary): 二进制文件

+: 读和写

(3)要配合fclose使用。

2、fwrite

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);  
    -- buffer:指向数据块的指针  
    -- size:每个数据的大小,单位为Byte(例如:sizeof(int)就是4)  
    -- count:数据个数  
    -- stream:文件指针  

例如double a[5]={1.1,1.2,1.3,1.4,1.5};fread(a,sizeof(double),5,fp)将数组a中的数据存放如文件fp中。

3、fread

size_t   fread(   void   *buffer,   size_t   size,   size_t   count,   FILE   *stream   ) 

buffer   是数据存放的内存的指针(可以是数组,或者指针)   

size       是每次读取的字节数   

count    是读取次数   

stream   是要读取的文件的指针   

例如double a[5]={1.1,1.2,1.3,1.4,1.5};fread(a,sizeof(double),5,fp)将文件fp中的数据存放到数组a中。

4、备注

把一个文本文件读入内存时,要将ASCII码转换成二进制码, 而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。

5、对二进制文件的读写

FILE* fp_3;

fp_3 = fopen("F:\\model_sv_coef-c2.txt", "rb");

double* sv_coef_c; // 大小为totalSV;

sv_coef_c = new double[totalSVsum[15]];

fread(sv_coef_c, sizeof(double), totalSVsum[15], fp_3);

fclose(fp_3); delete[] sv_coef_c;

写文件要用 fp_3 = fopen("F:\\model_sv_coef-c2.txt", "wb");








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值