详解C语言之文件操作下)

目录
  • 文件的随机读写
    • fseek函数
    • ftell函数
    • rewind函数
  • 文件结束判定
    • feof函数和ferror函数
  • 总结

文件的随机读写

之前的函数只能实现顺序读写,而实现随机读写需用fseek函数来定位--根据文件指针的位置和偏移量来定位文件指针

fseek函数

int fseek(FILE* stream, long int offset, int origin);

返回值:若成功返回0,则返回非0值。

参数:stream为文件指针,offset为偏移量。origin为起始位置,有三种 SEEK_SET(文件起始的位置)、SEEK_END(文件末尾的位置)、SEEK_CUR(文件指针当前位置)。

例:test.txt文件中放的是hello world

ftell函数

long int ftell(FILE* stream);

返回文件指针相对于起始位置的偏移量

rewind函数

void rewind(FILE* stream);

让文件的指针回到文件的起始位置

文件结束判定

1.文本文件读取是否结束,判断返回值是否为EOF或NULL

如 fgetc 判断EOF ,fgets判断NULL

当读取失败和遇到文件结束的时候都会返回EOF或NULL

2.二进制文件的读取结束判断,判断返回值是否小于实际要读的个数。

如 fread 判断返回值是否小于实际要读的个数

当文件读取结束时,用ferror函数和feof函数来检查文件读取结束的原因,是读取失败结束,还是遇到文件末尾结束。

feof函数和ferror函数

int feof(FILE* stream);

如果遇到EOF读取结束返回 非0值 ,否则返回0。

int ferror(FILE* stream);

如果读取发生错误返回 非0值,否则返回0.

文本文件结束判定示例:

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • C语言文件操作的入门详解教程

    一.一些需要掌握的知识点 文件有千千万万,但是在我们的程序设计当中,我们谈的文件一般有两种: 1.程序文件 包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe). 2.数据文件 文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件. 而在本节中,我们主要提到的是数据文件. 1.文件名 我们知道,名字都是用来标识和区别事物的,那么文件名也是这样,是区别各个文件的标识. 一个文件

  • C语言文件操作详解

    目录 一.什么是文件 二.文件缓冲区 三.文件指针 四.文件的打开和关闭. 总结 一.什么是文件 在程序设计中,我们一般谈的文件有两种:程序文件.数据文件. 程序文件: 包括源程序文件(后缀为.c ),目标文件( windows环境后缀为.obj ) ,可执行程序( windows环境后缀为.exe ). 数据文件: 文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件 或者输出内容的文件. 数据文件又分为"文本文件"和"二级制文件"

  • 详解C语言之文件操作(上)

    目录 什么是文件 程序文件 数据文件 文件名 文件类型 文件缓冲区 文件指针 文件的打开和关闭 输入和输出 总结 什么是文件 磁盘上的文件就是文件. 在程序设计中,我们一般谈的文件有两种:程序文件和数据文件 程序文件 包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe). 数据文件 文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行时需要从中读取数据的文件,或者输出内容的文件. 文件名 文件名包含三部分:文件路径.

  • C语言中炫酷的文件操作实例详解

    目录 什么是文件 程序文件 数据文件 (本文重点) 文件名 文件的打开和关闭 文件指针 文件函数 相对路径与绝对路径 输入输出流 二进制读写 fwirte fread 总结 什么是文件 磁盘上的文件是文件 但是在程序设计中,我们一般谈的文件有两种:程序文件和数据文件(从文件功能的角度来分类). 程序文件 包括源程序文件(例如.c文件)目标文件(windows环境后缀为.obj)可执行程序(windos环境后缀为exe). 数据文件 (本文重点) 文件的内容不一定是程序,而是程序运行时读写的数据,

  • C语言基础文件操作方式超全详解建议收藏

    目录 什么是文件 文件名 文件类型 文件指针 文件的打开与关闭 打开方式 文件的顺序读写 关于fread的返回值 对比一组函数 文件随机读取 文件结束判断 perror() ferror() 什么是文件 磁盘上的文件是文件. 在程序设计中,我们一般读的文件有两种:程序文件 和 数据文件 程序文件包括源程序文件(后缀为.c).目标文件(win下后缀为 .obj).可执行文件(win下环境后缀为.exe) 数据文件:文件的内容不一定是程序,而是运行时读写的程序,比如程序运行需要从中读取数据的文件,或

  • 详解C语言之文件操作下)

    目录 文件的随机读写 fseek函数 ftell函数 rewind函数 文件结束判定 feof函数和ferror函数 总结 文件的随机读写 之前的函数只能实现顺序读写,而实现随机读写需用fseek函数来定位--根据文件指针的位置和偏移量来定位文件指针 fseek函数 int fseek(FILE* stream, long int offset, int origin); 返回值:若成功返回0,则返回非0值. 参数:stream为文件指针,offset为偏移量.origin为起始位置,有三种 S

  • 详解C语言读取文件求某一列的平均值

    目录 第一部分:比较读取文件的效率 第二部分:比较求取列平均值的效率 第一部分:比较读取文件的效率 在之前的文章<生信(五)awk求取某一列的平均值>中,笔者曾经给出过C语言求取某列平均值的代码,但是最近回顾时发现,这段代码至少有几点不足: 1. 利用 fgetc 函数来读取文件,现在看来效率不高. 2. 如果文件最后没有一个空白行的话,会陷入无限循环.也就是对 EOF 的处理不完善. 大家都知道,C语言读取文件的常用函数有 fgetc.fgets.fread 以及 fscanf 等.笔者曾经

  • 一文详解C语言中文件相关函数的使用

    目录 一.文件和流 1.程序文件 2.数据文件 3.流 二.文件组成 三.文件的打开和关闭 1.文件的打开fopen 2.文件关闭fclose 四.文件的顺序读写 1.使用fputc和fgetc写入/读取单个字符 2.使用fputs和fgets写入/读取一串字符 3.使用fprintf和fscanf按照指定的格式写入/读取 4.使用fwrite和fread按照二进制的方式写入/读取 5.使用sprintf和sscanf将格式化数据和字符串互相转换(文件无关) 五.文件的随机读写 1.fseek(

  • 详解Python中的文件操作

    1.能调用方法的一定是对象,比如数值.字符串.列表.元组.字典,甚至文件也是对象,Python中一切皆为对象. str1 = 'hello' str2 = 'world' str3 = ' '.join([str1,str2]) print(str3) 2.三种基本的文件操作模式:r(only-read).w(only-write).a(append) 对文件进行操作的流程: 第一,建立文件对象. 第二,调用文件方法进行操作. 第三,不要忘了关闭文件.(文件不关闭的情况下,内容会放在缓存,虽然P

  • 详解C 语言项目中.h文件和.c文件的关系

    详解C 语言项目中.h文件和.c文件的关系 在编译器只认识.c(.cpp))文件,而不知道.h是何物的年代,那时的人们写了很多的.c(.cpp)文件,渐渐地,人们发现在很多.c(.cpp)文件中的声明语句就是相同的,但他们却不得不一个字一个字地重复地将这些内容敲入每个.c(.cpp)文件.但更为恐怖的是,当其中一个声明有变更时,就需要检查所有的.c(.cpp)文件. 于是人们将重复的部分提取出来,放在一个新文件里,然后在需要的.c(.cpp)文件中敲入#include XXXX这样的语句.这样即

  • 详解C语言fscanf函数读取文件教程及源码

    目录 第一部分:问题和结论 fscanf 函数的原型是: 第二部分:实验代码 实验代码: fscanf 函数用于格式化读入文件中数据,可以大大提高读取文件的效率.这次笔者将最近使用该函数的一些经验记录下来. 第一部分:问题和结论 fscanf 函数的原型是: int fscanf(FILE* stream, const char* format, [argument...]); fscanf 函数与 scanf 函数用法类似,只不过前者用于读取文件流的数据而已.至于 fscanf 的基础用法我就

  • 详解python中的文件与目录操作

    详解python中的文件与目录操作 一 获得当前路径 1.代码1 >>>import os >>>print('Current directory is ',os.getcwd()) Current directory is D:\Python36 2.代码2 如果将上面的脚本写入到文件再运行 Current directory is E:\python\work 二 获得目录的内容 Python代码 >>> os.listdir (os.getcwd

  • 详解Python读取和写入操作CSV文件的方法

    目录 什么是 CSV 文件? 内置 CSV 库解析 CSV 文件 读取 CSV 文件csv 将 CSV 文件读入字典csv 可选的 Python CSV reader参数 使用 csv 写入文件 从字典中写入 CSV 文件csv 使用 pandas 库解析 CSV 文件 pandas 读取 CSV 文件 pandas 写入 CSV 文件 最流行的数据交换格式之一是 CSV 格式.是需要通过键盘和控制台以外的方式将信息输入和输出的程序,通过文本文件交换信息是在程序之间共享信息的常用方法. 这里带和

  • 详解Go语言中关于包导入必学的 8 个知识点

    1. 单行导入与多行导入 在 Go 语言中,一个包可包含多个 .go 文件(这些文件必须得在同一级文件夹中),只要这些 .go 文件的头部都使用 package 关键字声明了同一个包. 导入包主要可分为两种方式: 单行导入 import "fmt" import "sync" 多行导入 import( "fmt" "sync" ) 如你所见,Go 语言中 导入的包,必须得用双引号包含,在这里吐槽一下. 2. 使用别名 在一些场

随机推荐