文件操作

news/2024/9/18 23:57:34 标签: c语言, 笔记, 有问必答

1.文件的打开和关闭


文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。
在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。
ANSI C规定使用fopen函数来打开文件,

成功打开文件后, fopen 将返回一个指向 FILE 类型指针,此指针用于后续的文件操作2。如果打开失败, fopen 将返回 NULL ,并且错误代码会保存在 errno 中。


fclose 来关闭文件。

参数 stream  是指向 FILE  类型指针,指的是要关闭的文件。如果关闭成功, fclose  返回0,否则返回EOF(-1)。

//打开文件
FILE* fopen(const char* filename, const char* mode);
//关闭文件
int fclose(FILE * stream);

const char* filename表示文件名

const char* mode表示文件打开的模式

有如下几种方式

 比如我要打开道德经这个文件只读,就可以像下面这样写

int main(void)
{
	char ch = 0;
	FILE* pf = fopen("道德经全文.txt", "r");
	if (pf == NULL)
	{
		perror("fopen");
		return 1;
	}
	fclose(pf);
	return 0;
}

我们接下来就可以看文件的读写了。 

2.文件的顺序读写

 

 我们拿其中fgetc为例

fgetc函数简介 :
fgetc是C语言中的一个文件操作函数,用于从指定的文件中读取一个字符。该函数的声明如下:

int fgetc(FILE *stream);

其中,参数 stream 是一个指向文件指针的指针。

使用方法 :

包含头文件 :在程序中需要包含 stdio.h 头文件。
打开文件 :使用 fopen 函数打开文件,获得文件指针。例如:FILE *fp;
fp = fopen("filename.txt", "r"); 

r模式表示只读读取字符 :调用 fgetc 函数读取文件中的字符2。例如:int ch = fgetc(fp);这将读取filename.txt文件中的一个字符,并将其存储在整数变量ch中。


关闭文件 (可选):如果不再需要文件指针,可以使用 fclose 函数关闭文件。例如:fclose(fp);返回值 :

如果成功读取字符, fgetc 函数返回读取到的字符的ASCII值。
如果到达文件末尾或读取出错,返回 EOF (-1)。

EOF的全称是end of file

那么思考一下,既然fgetc和fputc可以作用于所有的流

那么是不是也可以作用于标准输入流和标准输出流

答案显然是可以的

int main(void)
{
	int ch = fgetc(stdin);//从键盘(标准输入流)上读取
	fputc(ch, stdout);//将字符输出(写)到屏幕(标准输出流)
	return 0;
}

作用和scanf和printf是差不多的。

其实通过文件的知识我们可以去尝试去做一共破损版的的电子书模拟器了

电子书模拟器(破损版一稿)-CSDN博客


http://www.niftyadmin.cn/n/5664734.html

相关文章

【python】30、矩阵加法 tensor.sum

文章目录 一、tensor.sum 一、tensor.sum 为了更好地理解 torch.sum 函数中 dim 参数的作用,我们可以将三维张量的求和过程分解,并通过具体的例子来说明不同 dim 参数的效果。### 三维张量的结构假设我们有一个 3x2x2 的张量,如下所示&#…

【JavaEE初阶】多线程6(线程池\定时器)

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 实例3:线程池 参数解释 核心线程数, 最大线程数 允许空闲的最大时间 ,时间单位 任务队列(阻塞队列) 线程工厂>工厂设计模式 拒绝策略 使用举例 模拟实现一个线…

windows使用tcpdump.exe工具进行抓包教程

windows主机安装一些抓包工具可能有些不方便,这里有一个tcpdump.exe工具直接免安装,可以直接使用进行抓包。(工具下载见 附件) tcpdump.exe使用教程 如下: 1:tcpdump -D 可查看网络适配器(注意前面的编号)…

OpenHarmony(鸿蒙南向开发)——轻量和小型系统三方库移植指南(一)

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ OpenHarmony(鸿蒙南向开发)——轻量系统芯片移植指南(一) Op…

Web植物管理系统-下位机部分

本节主要展示上位机部分,采用BSP编程,不附带BSP中各个头文件的说明,仅仅是对main逻辑进行解释 main.c 上下位机通信 通过串口通信,有两位数据验证头(verify数组中保存对应的数据头 0xAA55) 通信格式 上位发送11字节…

Python那些关于字符串的操作

Python那些关于字符串的操作 1 前言2 字符串的处理操作.2.1分割字符串2.2拼接字符串2.3正则表达式2.4enumerate2.5字符串中的大小写转化2.6 对齐加数 总结 1 前言 python关于字符串的操作很多,而正则化直接是打开新世界的大门。同一种说法,使用不同语言…

【Ubuntu】Ubuntu双网卡配置 实现内外网互不影响同时可用

【Ubuntu】Ubuntu双网卡配置 实现内外网互不影响同时可用 建议前提配置用到的命令参考文献: 建议 本文仅作个人记录,请勿完全照搬,建议直接看此视频,按作者的步骤进行配置 linux配置内外网(ubuntu举例)&am…

关于wordPress中的用户登录注册等问题

前言 大家在做类似的功能的时候,有没有相关的疑问。那就是我都已经选择好了相应的主题和模版,但是为什么都没有用户注册和用户登录的页面存在呢? WordPress默认情况下不提供用户注册和登录功能的原因是它最初是作为一个博客平台开发的&…