C语言 文件操作

文件:
文件是存放在外存的数据的有序集合,
普通文件
.txt、.c、.h…
设备文件
设备文件代表一个设备,在linux操作系统下,一切设备皆文件。
要操作设备就操作设备文件。
按编码分:
文本文件

二进制文件

在c语言中对文件进行读写的时候不关心是什么编码的,只是把文件当做
字节流(字节的集合)来处理,按字节进行读写,

文件基本操作:
1:文件指针
FILE *fp;//FILE 是一个结构体类型,打开文件的时候系统会在内存中
申请一个 FILE 类型的结构体变量,来存放此文件相关的信息。
返回结构体的地址,即文件指针,以后要想对文件进行读写,关闭,
只需要对文件指针操作即可。
打开文件
fp=fopen("./test.txt",“r+”);//成功返回文件指针,失败返回NULL
关闭文件
fclose(fp);//把fp所代表的文件关闭。关闭文件后就不能再对其进行读写了。
文件的读写:
一次读写一个字符
char ch;
ch=fgetc(fp)//从fp所代表的文件中读取一个字节给ch赋值
//注意对文件进行读写的时候,位置指针会往文件的末尾方向移动。
//位置指针就是代表此文件的当前读写位置。
fputc(ch,fp);//把ch字符写到fp所代表的文件中。

一次读写一个字符串
char str[100];
char *p;
p=fgets(str,100,fp)
//从fp所代表的文件中读取99个字节,保存在str指向的内存中。
fgets什么时候返回
1:读到了99个字节返回
2:碰到’\n’返回。
3、碰到文件的末尾也返回。
fgets的返回值,成功返回目的数组的首地址,失败返回NULL

fputs(str,fp);//将str指向的字符串,写到fp所代表的文件中。

一次读写n块

fwirte(str,50,2,fp);//将str指向的内存,2块,每块大小为50个字节。
//写到fp所代表的文件中
fread(str,50,2,fp)//从fp所代表的文件中读2块,每块50个字节,存放
在str指向的内存中。

这两个函数的返回值,是块数,不到两块返回1 不到1块返回0

文件的随机读写
1:恢复位置指针到文件的开始

rewind(fp);

2: 测位置指针离文件开头的字节数

long int len;
len=ftell(fp);

3:定位位置指针到文件的某个地方

fseek(fp,-20,SEEK_END);

第一个参数是对哪个文件的位置指针进行操作
第二个参数是偏移量,正数往文件末尾方向移动,负数往文件开头方向移动
第三个参数是,移动的相对位置
SEEK_SET 文件开头
SEEK_CUR 相对于文件的位置指针的当前位置。
SEEK_END 相对于文件的末尾位置偏移

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值