iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言超详细文件操作基础下篇
  • 511
分享到

C语言超详细文件操作基础下篇

2024-04-02 19:04:59 511人浏览 八月长安
摘要

目录一、文件的顺序读写1.格式化的输出函数(fprintf)2.格式化的输入函数(fscanf)3.二进制读写1.二进制输出函数(fwrite)2.二进制输入函数3.scanf,fs

一、文件的顺序读写

兄弟们,上一章只介绍到了如何把单个的字符或者字符串如何写到文件里或者从文件中读取,文件的顺序读写后面还有几个函数没有介绍完,我们接着上一章继续,给大家介绍完,图片再拷给大家回顾回顾

1图片如下:

1.格式化的输出函数(fprintf)

这样我们就可以把格式化的数据写到文件里了。

代码如下:


#include<stdio.h>
struct S
{
	char arr[10];
	int num;
	float sc;
};
int main()
{
	struct S s = { "abcdef",20,5.5f };
	FILE* pf = fopen("test.dayta", "w");
	if (NULL == pf)
	{
		return 1;
	}
	//写文件
	fprintf(pf, "%s %d %f", s.arr, s.num, s.sc);//这就是如何把格式化的数据写到文件里
	//关闭文件
	fclose(pf);
	pf = NULL;
	return 0;
 
}

2.格式化的输入函数(fscanf)

这样我们就可以从文件里读取格式化的数据了。

代码如下:


#include<stdio.h>
struct S
{
	char arr[10];
	int num;
	float sc;
};
int main()
{
	struct S s = {0};
	FILE* pf = fopen("test.dayta", "r");
	if (NULL == pf)
	{
		return 1;
	}
	//写文件
	fscanf(pf, "%s %d %f", s.arr, &(s.num), &(s.sc));//这就是如何把格式化的数据写到文件里
	printf("%s %d %f", s.arr, s.num, s.sc);
	fprintf(stdout, "%s %d %f", s.arr, s.num, s.sc);//这类函数参数不同,功能就不同,可以适用于所有的流
	//关闭文件
	fclose(pf);
	pf = NULL;
	return 0;
 
}

3.二进制读写

1.二进制输出函数(fwrite)

以二进制的方式把数据写到文件里

代码如下:


struct S
{
    char arr[10];
    int num;
    float sc;
};
int main()
{
    struct S s = {"abcdef",20,5.5f};
    FILE* pf = fopen("test.dayta", "w");
    if (NULL == pf)
    {
        return 1;
    }
    //写文件
    fwrite(&s, sizeof(struct S), 1, pf);
    //关闭文件
    fclose(pf);
    pf = NULL;
    return 0;
 
}

2.二进制输入函数

以二进制的方式从文件里读取数据

代码如下:


#include<stdio.h>
struct S
{
	char arr[10];
	int num;
	float sc;
};
int main()
{
	struct S s = {0};
	FILE* pf = fopen("test.dayta", "r");
	if (NULL == pf)
	{
		return 1;
	}
	//写文件
	fread(&s, sizeof(struct S), 1, pf);
	printf("%s %d %f", s.arr, &(s.num), &(s.sc));
	//关闭文件
	fclose(pf);
	pf = NULL;
	return 0;
 
}

3.scanf,fscanf,sscanf、printf,fprintf,sprintf的区别

scanf —  针对标准输入的格式化的输入语句—stdin

fscanf — 针对所有输入流的格式化的输入语句 — stdin/文件

sscanf — 从一个字符串中读取一个格式化的数据

printf — 针对标准输出的格式化语句 — stdout 

fprintf — 针对所有输出流的格式化输出语句 — stdout/文件

sprintf — 把一个格式化的数据,转换成字符串

二、文件的随机读写

1.fseek函数

fseek函数:根据文件指针的位置和偏移量来定位文件指针。

代码如下:


#include<stdio.h>
int main()
{
	
	FILE* pf = fopen("test.data", "r");
	if (NULL == pf)
	{
		perror("main");
		return 1;
	}
	//读取文件
	int ch = fgetc(pf);
	printf("%c\n", ch);
	//调整文件
 
	fseek(pf, 2, SEEK_END);
	int ch = fgetc(pf);
	printf("%c\n", ch);
 
	//关闭文件
	fclose(pf);
	pf = NULL;
	return 0;
 
}

2.ftell函数

ftell函数:返回文件指针相对于起始位置的偏移量(告知偏移量是多少)

3.rewind函数

rewind函数:让文件指针的位置回到文件的起始位置

三、被错误使用的feof

feof(文件结束返回非0)

feof应用于当文件读取结束的时候,判断是读取失败结束,还是遇文件尾结束

fgetc函数在读取结束的时候,会返回EOF,正常读取的时候,返回的是读取到的字符ASCII码值

fgets函数在读取结束的时候返回NULL,正常读取的时候返回存放字符串的空间起始地址。

fread函数在读取的时候,返回的是实际读取到的完整元素的个数。如果发现读取到的元素个数小于指定的元素个数,这就是最后一次读取了。

写代码test.txt文件拷贝一份,生成test2,txt


#include<stdio.h>
int main()
{
	FILE* pfread = fopen("test.txt", "r");
	if (NULL == pfread)
	{
		return 1;
	}
	FILE* pfwrite = fopen("test2.txt", "w");
	{
		if (pfread == NULL)
		{
			fclose(pfread);
			pfread = NULL;
				return 1;
		}
		//文件打开成功
		//读写文件
		int ch = 0;
		while((ch = fgetc(pfread))!= EOF)
		{
			//写文件
			fputc(ch, pfwrite);
		}
	}
	//关闭文件
	fclose(pfwrite);
	pfwrite = NULL;
	return 0;
}

总结

综合两篇文章简单的介绍了什么是文件,文件的使用和操作方法,学会文件的使用让我们能更进一步加深对编程的了解,相信大家都学会了。如果上述文章有任何问题 ,欢迎大佬们提出质疑,我会虚心学习和改正,最重要的是能共同进步,共同成长,学习好编程。

到此这篇关于C语言超详细文件操作基础下篇的文章就介绍到这了,更多相关C语言 文件操作内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言超详细文件操作基础下篇

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

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

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

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

下载Word文档
猜你喜欢
  • C语言超详细文件操作基础下篇
    目录一、文件的顺序读写1.格式化的输出函数(fprintf)2.格式化的输入函数(fscanf)3.二进制读写1.二进制输出函数(fwrite)2.二进制输入函数3.scanf,fs...
    99+
    2024-04-02
  • C语言超详细文件操作基础上篇
    目录一、为什么使用文件二、什么是文件1.什么是数据文件2.什么是程序文件3.文件名三、文件的打开和关闭1 文件指针:2.打开和关闭文件函数(1)打开文件函数:(2)关闭文件函数四、文...
    99+
    2024-04-02
  • C语言操作符超详细讲解下篇
    目录前言赋值操作符单目操作符单目操作符介绍sizeof 和 数组关系操作符逻辑操作符条件操作符逗号表达式下标引用与函数调用和结构成员[ ] 下标引用操作符( ) 函数调用操作符访问一...
    99+
    2024-04-02
  • C语言操作符超详细讲解上篇
    目录前言1、操作符的分类2、算术操作符3、移位操作符3.1 左移操作符3.1.1 正数左移1位3.1.2 负数左移1位3.2 右移操作符3.2.1 正数右移1位3.2.2 负数右移1...
    99+
    2024-04-02
  • C语言超详细讲解文件的操作
    目录一、为什么使用文件二、什么是文件1.程序文件2.数据文件3.文件名三、文件指针四、文件的打开和关闭五、文件的顺序读写六、文件的随机读写fseekftellrewind七、文件结束...
    99+
    2024-04-02
  • C语言基础文件操作方式超全详解建议收藏
    目录什么是文件文件名文件类型文件指针文件的打开与关闭打开方式文件的顺序读写关于fread的返回值对比一组函数文件随机读取文件结束判断perror()ferror()什么是文件 磁盘上...
    99+
    2024-04-02
  • C语言指针超详细讲解下篇
    目录前言指针运算指针±整数指针-指针指针的关系运算指针和数组二级指针指针数组举例 1举例 2总结前言 本文接着上一篇内容,继续学习指针相关知识点。 指针运算 指针&pl...
    99+
    2024-04-02
  • C语言函数超详细讲解下篇
    目录前言函数的声明和定义函数声明函数定义举例简单的求和函数把加法单独改写成函数添加函数声明带头文件和函数声明静态库(.lib)的生成静态库文件的使用方法函数递归什么是递归?递归的两个...
    99+
    2024-04-02
  • python超详细基础文件操作【建议收藏】
    文章目录 前言发现宝藏1 文件操作1.1 文件打开与关闭1.1.1 打开文件1.1.2 关闭文件 1.2 访问模式及说明 2 文件读写2.1 写数据(write)2.2 读数据(re...
    99+
    2024-01-21
    python
  • C++文件操作,超级详细
    目录 常用的文件操作方式:打开文件打开方式参数以只读方式打开文件以只写方式打开文件以追加方式打开文件文件流迭代器 常用的文件操作方式: FILE 结构体:FILE 结构体是 C 语言中...
    99+
    2023-10-18
    c++ ios 开发语言
  • 详解C语言之文件操作下)
    目录文件的随机读写fseek函数ftell函数rewind函数文件结束判定feof函数和ferror函数总结文件的随机读写 之前的函数只能实现顺序读写,而实现随机读写需用fseek函...
    99+
    2024-04-02
  • C语言超详细讲解排序算法下篇
    目录1、冒泡排序2、快速排序 ( 三种方法 )3、归并排序4、排序算法复杂度及稳定性分析 上期学习完了前四个排序,这期我们来学习剩下的三个排序 1、冒泡排序 &n...
    99+
    2024-04-02
  • C语言数组超详细讲解下篇扫雷
    目录前言1、扫雷是什么?2、程序框架2.1 主函数2.2 函数menu2.3 函数game2.3.1 函数init_board2.3.2 函数show_board2.3.3 函数se...
    99+
    2024-04-02
  • C语言操作符基础知识图文详解
    目录1.算术操作符+ - * /%2.移位操作符>> (右移操作符) <<(左移操作符)左移操作符:<<右移操作符:>>3.位操作符3...
    99+
    2024-04-02
  • C++中文件操作基础详解
    目录文件操作文件分类文本文件写文件读文件二进制文件写文件读文件文件操作 意义:利用文件操作可以保存我们程序运行的信息,是持久化技术的体现 文件分类 按文件类型分为: 1、文本文件 &...
    99+
    2024-04-02
  • C语言操作符基础知识详解
    目录一.单目操作符:二.关系操作符三.条件操作符四.逗号表达式五.逻辑操作符总结一.单目操作符: !:逻辑反操作符; -:负数操作符; +:整数操作符; &:取地址操作符; ...
    99+
    2024-04-02
  • C语言文件操作详解以及详细步骤
    目录一、为什么使用文件?二、什么是文件?1.程序文件2.数据文件3.文件名三、文件的打开和关闭1.文件指针2.文件的打开和关闭3.文件的顺序读写四、fseek函数五、ftell函数六...
    99+
    2024-04-02
  • C语言文件操作详解
    目录一、什么是文件二、文件缓冲区三、文件指针四、文件的打开和关闭。总结一、什么是文件 在程序设计中,我们一般谈的文件有两种:程序文件、数据文件。 程序文件: 包括源程序文件(后缀为....
    99+
    2024-04-02
  • C语言函数超详细讲解上篇
    目录前言1、函数是什么?2、C语言中函数的分类2.1 库函数2.1.1 如何学会使用库函数2.1.2 自定义函数3、函数的参数3.1 实际参数(实参)3.2 形式参数(形参)4、函数...
    99+
    2024-04-02
  • C语言指针超详细讲解上篇
    目录前言1、指针是什么1.1 指针变量1.2 指针是内存中一个最小单元的编号2、指针和指针类型2.1 指针±类型2.2 指针的解引用2.2.1 int* 类型的解引用2...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作