c语言文件

有时候会想做这些的意义到底是什么,我期盼的是我能得到的吗,我所失去的是我所不该失去的吗?

1.c语言中的文件是什么?

文件就是存储在外部介质(磁盘、可移动盘)中的数据的集合。

2.c语言的输入与输出?

输入是从“源端”获取数据;输出是向“终端”写入数据。

3.c语言文件系统中的类型?

FILE:对象类型

fpos_t:非数组完整对象类型

4.流的概念及分类

4.1流的概念

通常把抽象出来的“标准逻辑设备”或“标准文件”称作“流”。

4.2流的分类

方向:输入流和输出流。从文件获取数据的流成为输入流,向文件输出数据称为输出流。

数据形式:文本流和二进制流。

文本文件与二进制文件有什么区别?

文本文件中把要存储的数据当成一系列字符处理,把每个字符对应的ASC码存入文件中。

二进制文件则是将数据以二进制的形式存储到文件中。

5.文件的操作

分为:打开文件、读写文件、关闭文件

5.1fopen

需要指定文件位置及打开方式。

打开成功返回对应的FILE类型指针;失败返回NULL。

5.2fclose

参数为要关闭的流对象指针。

成功返回0;失败返回EOF(-1)。

5.3fread --- 块数据读出函数

原型: size_t fread ( void * ptr, size_t size, size_t count, FILE * stream )

ptr: 存储从流中读取到的数据到ptr所指向的内存中。

size:读取元素的大小。

count:读取元素的个数。

stream:指向FILE对象的指针。

返回值:

成功,返回读取对象个数。

失败,返回零。

eg:从9.8.cpp中一次读127个字符

FILE* fp = fopen("9.8.cpp", "r");
    if (fp == NULL)
    {
        printf("文件打开失败!\n");
        return 0;
    }
    //读操作
    char buff[128] = { 0 };
    int n = 0;
    while (n = fread(buff, 1, 127, fp))
    {
        printf("%s",buff);
        memset(buff, 0, sizeof(buff));
    }
    fclose(fp);

5.4fwrite --- 与上对应

5.5fseek --- 更改文件中指针的指向

原型: int fseek( FILE *stream, long offset, int origin )

/*fseek(fp, 0, SEEK_END);*/  //SEEK_SET 文件头  SEEK_CUR 文件位置
fseek(fp, 5, SEEK_SET); //光标距离文件头向后5字节偏移
fseek(fp, -2, SEEK_END); //光标距离文件尾向前便宜2个字节
fseek(fp, 0, SEEK_CUR); //光标距离当前位置偏移量为0

5.7ftell --- 统计文件头到当前光标的位置

返回值为long类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值