IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> (C语言)文件的基本操作 -> 正文阅读

[C++知识库](C语言)文件的基本操作

大家好呀!👋这个是付青云同学的博客!😁
目前一直在学习C语言。🐸
写博客是为了来记录我的学习过程,同时也希望通过博客能够帮助到需要帮助的人。
如果我的博客可以帮助到你,不妨给我一个关注哦😁

文件操作

文件名包含:文件路径+文件名主干+文件名后缀
如:C:\Program Files (x86)\test.txt

文件的打开和关闭

文件指针

缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针”。

每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。
这些信息是保存在一个结构体变量中的。该结构体类型是有系统声明的,取名FILE

打开和关闭文件

文件使用方式含义如果指定文件不存在
“r”(只读)为了输入数据,打开一个已经存在的文本文件出错
“w”(只写)为了输出数据,打开一个文本文件建立一个新文件
“a”(追加)向文本文件添加数据建立一个新文件
“rb”(只读)为了输入数据,打开一个二进制文件出错
“wb”(追加)为了输出数据,打开一个二进制文件建立一个新文件
“ab”(读写)像一个二进制文件尾添加数据出错
“r+”(读写)为了读和写,打开一个文本文件出错
“w+”(读写)为了读和写,建立一个新的文件建立一个新文件
“a+”(读写)为了打开一个文件,在文件尾进行读写建立一个新文件
“rb+”(读写)为了读和写打开一个二进制文件出错
“wb+”(读写)为了读和写,新建一个新的二进制文件建立一个新文件
“ab+”(读写)打开一个二进制文件,在文件尾进行读和写建立一个新文件

如:

int main()
{
	FILE* pf = fopen("abc.txt", "r");//只读打开文件
	if (pf == NULL)
	{
		perror("fopen");
		return 1;
	}

	//关闭文件
	fclose(pf);

	pf = NULL;

	return 0;
}

代码的顺序读写

功能函数名适用于
字符输入函数fgetc所有输入流
字符输出函数fputc所有输出流
文本行输入函数fgets所有输入流
文本行输出函数fputs所有输出流
格式化输入函数fscanf所有输入流
格式化输出函数fprintf所有输出流
二进制输入fread文件
二进制输出fwrite文件

文件的随机读写

fseelk

作用:根据文件指针的位置和偏移量来定位文件指针(将文件指针移到指定位置)

//声明
int fseek ( FILE * stream, long int offset, int origin );
					//offset origin 中的字节数。
										//origin 初始位置。
#include <stdio.h>
int main()
{
	FILE* pf = fopen("test.txt", "wb");//打开一个二进制文件
	if (pf == NULL)
	{
		perror("fopen");
		exit(-1);
	}

	fputs("wo 1234 kenobi", pf);//写入文件

	fseek(pf, 3, SEEK_SET);//将文件指针移动到第三位

	fputs("jiao", pf);

	fclose(pf);//关闭文件
	pf = NULL;

	return 0;
}

运行后test.txt里显示为

wo jiao kenobi

ftell

作用:返回文件指针相对于起始位置的偏移量(获取文件指针的当前位置)

//声明
long int ftell ( FILE * stream );

用法:

#include <stdio.h>
int main()
{
	FILE* pf = fopen("test.txt", "wb");//打开一个二进制文件
	if (pf == NULL)
	{
		perror("fopen");
		exit(-1);
	}

	fputs("wo 1234 kenobi", pf);
	int size = ftell(pf);
	printf("%d\n", size);

	fseek(pf, 3, SEEK_SET);
	size = ftell(pf);
	printf("%d\n", size);

	fclose(pf);
	pf = NULL;

	return 0;
}

运行 如图:
在这里插入图片描述

rewind

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

//声明
void rewind ( FILE * stream );

用法:

int main()
{
	FILE* pf = fopen("test.txt", "wb");//打开一个二进制文件
	if (pf == NULL)
	{
		perror("fopen");
		exit(-1);
	}

	fputs("wo 1234 kenobi", pf);	
	int size = ftell(pf);
	printf("%d\n", size);

	rewind(pf);

	size = ftell(pf);
	printf("%d\n", size);


	fclose(pf);
	pf = NULL;

	return 0;
}

运行 如图:
在这里插入图片描述

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:19:47  更:2022-07-21 21:22:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 17:54:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码