文件读写的“二进制模式”和“文本模式”

二进制模式:将内存中的数据(01序列)直接传送到文件中,没有任何转换。如:char ch = 0x7d; fwrite(&ch, sizeof(char), 1, pfile);直接把0x7d这个01序列存储到文件中。

文本模式:将内存中的数据(01序列),通过文本格式控制,转化成可理解的字面意义,将转化后的字面意义输入到文件中,从字面意义到文件又进行一次转化,将字面意义转化成01序列存储起来。如:char ch = 0x7d; fprintf(fp, “%d”, ch);这个过程就是0x7d -->123-->0x31 0x32 0x37的二进制序列存储到二进制文件中,再用vim之类的文本编辑器打开文件时就可以看到123这个字面意义。

实验代码:

#include<stdio.h>               
                                
int main(int argc, char *argv[])
{                               
    FILE *pfile = NULL;         
    FILE *pfile2 = NULL;        
    char *file_name = "myfile.bin";
    char *file_name2 = "myfile.txt";
    char ch = 0x7d;             
    pfile = fopen(file_name, "wb");                                                                                                     
    pfile2 = fopen(file_name2, "w");
    size_t wcount = fwrite(&ch, sizeof(char), 1, pfile);
                                
    fprintf(pfile2, "%d", ch);
    return 0;                   
}         

注意事项:

使用fopen打开文件后可以一直往里面追加,不用重新打开,当完全写入完毕时,fclose要关闭,否则会出现莫名的错误。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值