二进制文件和文本文件的读写

  数据怎么在磁盘上写不是由文件打开方式决定的,而是由写函数决定的。数据怎么从磁盘上读也不是由文件打开方式决定的,而是由读函数决定的。
上面说的数据怎么写是指,一种类型的变量是怎么存的?比如int 12,可以直接存12的二进制码(4个字节),也可以存字符1,字符2.
数据怎么读的是指,我要读一个int变量,是直接读sizeof(int)个字节,还是一个字符一个字符的读,直到读到的字符不是数字字符。

C里面有两组文件读写函数恰好支持上面两种方式的读写:
1.二进制方式

fread(buffer,size,count,fp)
fwrite(buffer,size,count,fp)。//用来读写一个数据块。它对应的是第一种存储方式。直接按类型的字节长度指定读写的字节数。

 

2.文本方式
fprintf函数和fscanf函数.它对应的是第二种读写方式。即以字符的方式读写。
fprintf函数、fscanf函数与printf函数、scanf函数的作用相仿,都是格式化读写函数。fprintf和fscanf函数的读写对象是磁盘文件,而printf和scanf函数的读写对象是终端。)
它们的一般调用格式为:

fprintf(文件指针,格式字符串,输出列表);//写函数
fscanf (文件指针,格式字符串,输入列表);//读函数

 

#include <stdio.h>

void main(){

    FILE *fp;
    char s[]= "This is a string.",s1[30];
    char c = '\n';

    fp = fopen("file.txt","a");
    fprintf(fp,"%s%c",s,c);

    fclose(fp);
    fp=fopen("file.txt","r");
    fscanf(fp, "%[^\n]\n", s1);
    printf("%s\n",s1);
    fclose(fp);

}

 


补充:文件结束符
文本文件适用:
EOF:通过#define EOF (-1) ,判断文件指针指向的值是否为EOF来判断是否结束
二进制适用:
feof(FILE *p):避免了二进制中需要的文件中出现-1二被EOF误判为结束符,出现的一种操作,遇到结束返回1,否则返回0.

转载于:https://www.cnblogs.com/zzy-frisrtblog/p/6000218.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值