iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言实现文件读写功能流程
  • 201
分享到

C语言实现文件读写功能流程

C语言文件读写函数C语言文件读写操作 2022-12-30 18:12:31 201人浏览 泡泡鱼
摘要

目录打开文件关闭文件写入文件读取文件二进制 I/O 函数上一章我们讲解了 C 语言处理的标准输入和输出设备。本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。 一个

上一章我们讲解了 C 语言处理的标准输入和输出设备。本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。

一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件。本章将讲解文件管理的重要调用。

打开文件

您可以使用fopen( )函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型FILE的一个对象,类型FILE包含了所有用来控制流的必要的信息。下面是这个函数调用的原型:

FILE *fopen( const char *filename, const char *mode );

在这里,filename是字符串,用来命名文件,访问模式mode的值可以是下列值中的一个:

如果处理的是二进制文件,则需使用下面的访问模式来取代上面的访问模式:

"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

关闭文件

为了关闭文件,请使用 fclose( ) 函数。函数的原型如下:

int fclose( FILE *fp );

如果成功关闭文件,fclose( )函数返回零,如果关闭文件时发生错误,函数返回EOF。这个函数实际上,会清空缓冲区中的数据,关闭文件,并释放用于该文件的所有内存。EOF 是一个定义在头文件stdio.h中的常量。

C 标准库提供了各种函数来按字符或者以固定长度字符串的形式读写文件。

写入文件

下面是把字符写入到流中的最简单的函数:

int fputc( int c, FILE *fp );

函数fputc()把参数 c 的字符值写入到 fp 所指向的输出流中。如果写入成功,它会返回写入的字符,如果发生错误,则会返回EOF。您可以使用下面的函数来把一个以 null 结尾的字符串写入到流中:

int fputs( const char *s, FILE *fp );

函数fputs()把字符串s写入到 fp 所指向的输出流中。如果写入成功,它会返回一个非负值,如果发生错误,则会返回EOF。您也可以使用int fprintf(FILE *fp,const char *fORMat, ...)函数把一个字符串写入到文件中。尝试下面的实例:

注意:请确保您有可用的tmp目录,如果不存在该目录,则需要在您的计算机上先创建该目录。

/tmp一般是 linux 系统上的临时目录,如果你在 windows 系统上运行,则需要修改为本地环境中已存在的目录,例如:C:\tmp、D:\tmp等。

#include <stdio.h>
int main()
{
   FILE *fp = NULL;
   fp = fopen("/tmp/test.txt", "w+");
   fprintf(fp, "This is testing for fprintf...\n");
   fputs("This is testing for fputs...\n", fp);
   fclose(fp);
}

当上面的代码被编译和执行时,它会在 /tmp 目录中创建一个新的文件test.txt,并使用两个不同的函数写入两行。接下来让我们来读取这个文件。

读取文件

下面是从文件读取单个字符的最简单的函数:

int fgetc( FILE * fp );

fgetc()函数从 fp 所指向的输入文件中读取一个字符。返回值是读取的字符,如果发生错误则返回EOF。下面的函数允许您从流中读取一个字符串:

char *fgets( char *buf, int n, FILE *fp );

函数fgets()从 fp 所指向的输入流中读取 n - 1 个字符。它会把读取的字符串复制到缓冲区buf,并在最后追加一个null字符来终止字符串。

如果这个函数在读取最后一个字符之前就遇到一个换行符 '\n' 或文件的末尾 EOF,则只会返回读取到的字符,包括换行符。您也可以使用int fscanf(FILE *fp, const char *format, ...)函数来从文件中读取字符串,但是在遇到第一个空格和换行符时,它会停止读取。

#include <stdio.h>
int main()
{
   FILE *fp = NULL;
   char buff[255];
   fp = fopen("/tmp/test.txt", "r");
   fscanf(fp, "%s", buff);
   printf("1: %s\n", buff );
   fgets(buff, 255, (FILE*)fp);
   printf("2: %s\n", buff );
   fgets(buff, 255, (FILE*)fp);
   printf("3: %s\n", buff );
   fclose(fp);
}

当上面的代码被编译和执行时,它会读取上一部分创建的文件,产生下列结果:

1: This
2: is testing for fprintf...
3: This is testing for fputs...

首先,fscanf()方法只读取了This,因为它在后边遇到了一个空格。其次,调用fgets()读取剩余的部分,直到行尾。最后,调用fgets()完整地读取第二行。

二进制 I/O 函数

下面两个函数用于二进制输入和输出:

size_t fread(void *ptr, size_t size_of_elements, 
             size_t number_of_elements, FILE *a_file);
size_t fwrite(const void *ptr, size_t size_of_elements, 
             size_t number_of_elements, FILE *a_file);

这两个函数都是用于存储块的读写 - 通常是数组或结构体。

到此这篇关于C语言实现文件读写功能流程的文章就介绍到这了,更多相关C语言文件读写内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言实现文件读写功能流程

本文链接: https://www.lsjlt.com/news/176362.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言实现文件读写功能流程
    目录打开文件关闭文件写入文件读取文件二进制 I/O 函数上一章我们讲解了 C 语言处理的标准输入和输出设备。本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。 一个...
    99+
    2022-12-30
    C语言文件读写函数 C语言文件读写操作
  • C语言实现BMP图像的读写功能
    C语言实现BMP图像的读写 对于刚接触数字图像的同学,应该都有一个疑问,如何把一个BMP格式的图像用纯C语言读入呢,我相信这也是数字图像处理的第一步,如果有幸看到这篇文档,我就有幸的...
    99+
    2024-04-02
  • C语言Iniparser库实现ini文件读写
    目录一、概述二、使用下载方式一方式二三、API函数四、演示一、概述 iniparser是针对INI文件的解析器。ini文件则是一些系统或者软件的配置文件。iniparser库的API...
    99+
    2023-03-20
    C语言 ini文件读写 C语言 ini文件 C语言 Iniparser库
  • C语言如何实现BMP图像读写功能
    这篇文章给大家分享的是有关C语言如何实现BMP图像读写功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。C语言实现BMP图像的读写对于刚接触数字图像的同学,应该都有一个疑问,如何把一个BMP格式的图像用纯C语言读...
    99+
    2023-06-14
  • C语言如何实现随机读写文件
    这篇文章主要讲解了“C语言如何实现随机读写文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言如何实现随机读写文件”吧!1.fseek前面已经剧透过了,fseek可以改变记录读写位置的指...
    99+
    2023-07-05
  • C语言如何读写文件
    本篇内容介绍了“C语言如何读写文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:char buff[1000]={0};...
    99+
    2023-06-17
  • Java怎么实现读写文件功能
    Java中实现读写文件功能可以通过使用输入流和输出流来实现。读文件:1. 创建一个File对象,指定要读取的文件路径。2. 创建一个...
    99+
    2023-08-11
    Java
  • AndroidNDK开发(C语言-文件读写)
    目录1.文件读写 1.1打开文件 1.2关闭文件 1.3读取文件 1.4写入文件 1.5读写二进制I/O文件 1.6获取文件的大小 1.7文本简单加密、解密 1.8二进制文件简单加解...
    99+
    2024-04-02
  • 基于Java实现Avro文件读写功能
    目录模式(schema)与其他系统的比较Java客户端实现定义一个schema使用Java代码生成插件生成的User类进行序列化和反序列化在不生成User类的情况下直接进行序列化和反...
    99+
    2024-04-02
  • C语言实现随机读写文件的函数详解
    目录1.fseek2.ftell3.rewind总结在上一篇博客中,我详细讲解了如何使用C语言顺序读写文件。所谓顺序读写,就是按照顺序,挨个挨个的读或者写,换句话说,我必须先读第一个...
    99+
    2023-05-14
    C语言随机读写文件 C语言读写文件 C语言 文件
  • 怎么使用C语言Iniparser库实现ini文件读写
    这篇“怎么使用C语言Iniparser库实现ini文件读写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用C语言Ini...
    99+
    2023-07-05
  • C语言读取写入ini配置文件的方法实现
    目录一、了解什么是INI文件?二、INI文件的格式三、解析上述文件四、测试如下一、了解什么是INI文件? ini 文件是Initialization File的缩写,即初始化文件,这...
    99+
    2024-04-02
  • C语言实现发送邮件功能
    本文实例为大家分享了C语言实现发送邮件的具体代码,供大家参考,具体内容如下 首先需要知道发送邮件的服务器IP地址和端口,我这里使用的是网易的126邮箱,如果是其他邮箱需要替换成其他的...
    99+
    2024-04-02
  • C语言实现通讯录功能的流程与代码
    用C语言制作一个拥有添加,删除,查找,修改,排序,清空,打印功能的通讯录 用分模块的方法来实现这个通讯录,函数的声明,类型的声明放在一个.h文件中,函数的实现放在一个.c文件中,在主...
    99+
    2024-04-02
  • c语言怎么对文件进行读写
    C语言提供了一组文件操作函数,用于打开、读、写和关闭文件。下面是一个简单的示例,演示了如何对文件进行读写。1. 打开文件:```c#...
    99+
    2023-09-27
    c语言
  • 如何实现VB.NET文件流读、写类文件
    这篇文章主要介绍如何实现VB.NET文件流读、写类文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!VB.NET文件流代码:Option Explicit  Private m...
    99+
    2023-06-17
  • 关于C语言 文件读写 feof 函数
    目录一.feof 函数简介二.feof 函数实战一.feof 函数简介 feof是一个c语言函数,既可用以判断二进制文件又可用以判断文本文件。feof(fp)有两个返回值:如果遇到文...
    99+
    2024-04-02
  • C语言中的文件读写fseek 函数
    目录一.fseek 函数简介二.fseek 函数实战一.fseek 函数简介 fseek 函数用来移动文件流的读写位置;就好比播放器,可以直接拖拽到精彩的时间点一样,fseek 函数...
    99+
    2024-04-02
  • C#CSV文件读写的实现
    目录为什么要用csv文件一、DataTable数据写入CSV文件二、读取CSV文件到DataTable三、修改文件名称四、CSV文件的数据写入CSV是一种通用的、相对简单的文件格式,...
    99+
    2023-03-03
    C# CSV文件读写 C# CSV 读写
  • PHP怎么实现类似于C语言的文件读取及解析功能
    这篇文章主要介绍了PHP怎么实现类似于C语言的文件读取及解析功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP怎么实现类似于C语言的文件读取及解析功能文章都会有所收获,下面我们一起来看看吧。具体如下:$l...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作