继续细说文件

news2024/11/25 14:41:50

先来了解几个函数:

fopen,这个函数有2个参数分别为(字符串也就是要记得打引号)路径,和(字符串)操作模式,返回值为FILE类型的指针,也就是一个指向文件信息的结构的指针(因为在文件操作里面,需要这个结构指针才可以对该文件操作):

先来介绍两个简单的操作模式r模式和w模式,r模式为只读模式,就是只读取文件信息不对文件操作,w为只写模式,也就是如果前面的路径里的文件存在就清空文件内容,如果不存在就创建新文件;

再来介绍一下路径:包括文件的相对路径和绝对路径,首先是相对路径:也就是在当前目录下创建的文件,记得打引号,先给文件命名,后面的点和后缀都是表示文件类型;比如“data.text”表示一个名为data的文本文件;而绝对路径就是哪个盘里的什么里的什么,比如:写成“D:\:/rels/.rels”表示D:\盘下的rels文件下的rels类型文件

这里举个例子:首先,我在这个盘下的文件文件夹里面创建一个文本名为ww ;然后在里面输入1234567,之后这样用

 

且先不说其他的,这个直接报错,为什么呢?这里可以这么认为在编译器看来却不是这样的,在文件中,它的分隔符是/,但是在电脑的地址显示一般是\所以,在c语言里面就有了两种形态的分隔符:一种是\\另一种是/,其实这样容易混,所以,这里有一个小技巧,由于我们一般//表示注释,如果,但是分隔符中也有两个斜杠的,那不就是\\了吗?

对了,有一点要注意,在文件里面如果用的绝对路径,而且有中文的话,就要记得修改vs里面的这个:

点项目,然后到这里修改成使用多字节字符集,一定要记得按确定,至于为什么,我目前也不是很清楚,先改就完事了;

所以,如果填的是某个文本的绝对路径,可以自己写,也可以找到它的属性里面的绝对路径:然后复制,最后再将那些\都加一个\或者变成一个/;

比如:示范一下 

 

 这里就写一种:

#include<stdio.h>
int main()
{
	FILE* fp = fopen("D:\\文件\\ww.txt","r");
	if (!fp)return -1;
	char bu[10];
	while (fgets(bu, 10, fp) != NULL)
	{
		printf("%s", bu);
	}
	fclose(fp);
	return 0;
}

先别关注下面的代码,下面的代码是用来读取文件并且打印到屏幕上的;这里只是用来展示这样写的路径;

对了,这里随着你文件夹的命名,或者文本的命名,这里里面代码也要随着修改哦;

然后再来介绍fprintf函数,它可以和printf函数作比较,前者的参数就是比后者多了一个文件指针,其他的一致,但是要注意的是,这个函数打印在文件里;也就是相当于在修改文件;这里有疑问了,刚刚上面说的操作模式,如果是只读模式的话,可以对他进行修改吗?也就是打印;

来看这段代码:

#include<stdio.h>

int main()
{
	FILE* fp = fopen("D:\\文件\\ww.txt","r");
	if (!fp)return -1;
	//char bu[10];
	/*while (fgets(bu, 10, fp) != NULL)
	{
		printf("%s", bu);
	}*/
	fprintf(fp, "1234567");

	fclose(fp);
	return 0;
}

我先是把刚刚的文本清空了,再执行这段代码;这时候编译器没报错,但是,没有执行打印在文本的操作,应为这时候设置的模式为只读,这时候如果改为”w“模式,就可以打印;

还有一个函数是关闭打开的文件也就是fclose它的参数就一个,也就是文件类型的指针;如果在函数里面不用这个文件了,可以先将它关闭,虽然在程序结束后他会自动关闭,但是,在程序结束前,关闭所有文件是良好的编程习惯;上面的代码就可以看见它的身影;

-----------------------------------------------------------------------------------------------------------------------------------------

每个人都是小孩:你也是要长大的小朋友 ,一定要撑着, 别倒下去。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/478225.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 基础入门篇(五)——— 面向对象编程

文章目录 一、面向对象的思想二、类的定义与对象的创建三、对象内存分配情况 ★ 3.1 两个对象的内存图3.2 两个变量指向同一个对象内存图 四、构造器4.1 构造器的格式与分类4.2 构造器的调用 五、 this 关键字六、封装七、标准JavaBean补充&#xff1a;局部变量和成员变量的区别…

【计算机网络详解】——物理层(学习笔记)

&#x1f4d6; 前言&#xff1a;今天我们将一起探索电脑网络中最基础的一层&#xff0c;物理层。从摩斯电码到光纤传输的高速互联网时代&#xff0c;物理层在不断发展和创新。让我们一起深入到网络通讯的本质&#xff0c;探究物理层与我们的日常联系密不可分的原因。 目录 &…

面试篇:Spring

一、Spring框架的单例bean是线程安全的吗&#xff1f; 1、Spring框架中的bean是单例的吗&#xff1f; spring框架中的bean是单例的&#xff0c;在默认情况下是singleton模式&#xff0c;即单例模式。如果需要更改则可以在Scope注解设置为prototype为多例模式。 singleton:bea…

ECharts---X轴文字显示不全

原因&#xff1a; X轴标签文字过多导致显示不全解决方法&#xff1a;(一)xAxis 中添加 xAxis.axisLabel 属性 axisLabel是用来设置x轴的刻度以及一些参数的设置&#xff1a; (1)interval设置的是间隔数&#xff0c;把x轴分成10个间隔&#xff0c;根据x轴的数据自动划分份数值…

【计算机专业漫谈】【计算机系统基础学习笔记】W1-计算机系统概述

利用空档期时间学习一下计算机系统基础&#xff0c;以前对这些知识只停留在应试层面&#xff0c;今天终于能详细理解一下了。参考课程为南京大学袁春风老师的计算机系统基础MOOC&#xff0c;参考书籍也是袁老师的教材&#xff0c;这是我的听课自查资料整理后的笔记&#xff0c;…

【Java笔试强训 14】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;计算日期…

web小游戏开发:华容道(一)

web小游戏开发:华容道(一) 华容道htmlcss素材原图素材验证游戏关卡华容道 老顾儿时的记忆啊,也是一个经典的益智游戏。 游戏规则就不用再介绍了吧,就是让曹操移动到曹营就算胜利。 CSDN 文盲老顾的博客,https://blog.csdn.net/superrwfei html 经过上次的扫雷,大家应…

Prometheus 监控初体验

最近由于要对Splunk 实现Prometheus 监控,下面先实践一下: 0: 先看架构图: 1: 安装: docker run -d -p 9090:9090 -v ~/docker/prometheus/:/etc/prometheus/ prom/prometheus 执行上面的 命令,发现prometheus docker 启动不起来,(原因是Mac 里的文件权限,或者是path

《嵌入式系统》知识总结4:STM32时钟源

此图说明了STM32的时钟走向&#xff0c;从图的左边开始&#xff0c;从时钟源一步步分配到外设时钟。 时钟源分类 从时钟频率来说&#xff0c;分为高速时钟和低速时钟&#xff0c;高速时钟是供给芯片主体的主时钟&#xff0c;而低速时钟只是供 给芯片中的RTC&#xff08;实时时…

Django请求生命周期

前言 django是一个web框架&#xff0c;在这之前的文章中&#xff0c;我们推导了python web框架的实现过程&#xff0c;也了解了客户端浏览器输入网址回车后发生了啥事&#xff0c;为了更加理解django的工作流程&#xff0c;本文将介绍客户端浏览器访问django后端在django框架中…

R语言多元数据统计分析在生态环境中的实践

生态环境领域研究中常常面对众多的不同类型的数据或变量&#xff0c;当要同时分析多个因变量&#xff08;y&#xff09;时需要用到多元统计分析&#xff08;multivariate statistical analysis&#xff09;。多元统计分析内容丰富&#xff0c;应用广泛&#xff0c;是非常重要和…

如何使用OpenVPN搭建局域安全网

前言: 由于在使用SpringCloud的时候把注册中心部署到内网中的一个服务器器上,由于这个服务器和我当前使用的网络的网关在同一个局域网内内,但是我电脑不在.主要现象就是我的电脑能ping通服务器,但是服务器不能ping通我的电脑 正文: 服务器端安装方式一: 去这个仓库下载一个open…

【人脸检测】——YOLO5Face: Why Reinventing a Face Detector论文浅读

人脸检测&#xff0c; yolov5 主要讨论的问题&#xff1a; 用通用的目标检测模型做人脸检测&#xff0c;而不一定需要一些专业设计的结构 摘要 最近几年在使用卷积神经网络进行人脸检测方面取得了巨大的进展。尽管许多人脸检测器使用专门用于检测人脸的设计&#xff0c;但我们…

【CTF WriteUp】2023数字中国创新大赛网络数据安全赛道决赛WP(2)

2023数字中国创新大赛网络数据安全赛道决赛WP(2) 数据分析题目 菜的要死&#xff0c;各种不会&#xff0c;答案也不全&#xff0c;凑合吧 数据分析-bankmail 流量为邮件通信流量 将其中邮件部分导出&#xff0c;保存为eml文件并打开&#xff0c;看到Alice给Bob的第一封邮件…

收藏的一些好用的网站

一、PPT模板 网址&#xff1a;https://pptmon.com/ PPTMON - Free PowerPoint Templates and Google Slides Themes 是一个提供 PowerPoint 模板和图标素材下载的网站。该网站上有大量的 PowerPoint 模板&#xff0c;可供用户根据自己的需要进行选择和下载。此外&#xff0c;该…

二叉树OJ题目合集(单值、对称、平衡、构建加遍历)

目录 前言&#xff1a; 一&#xff1a;单值二叉树 二&#xff1a;二叉树遍历 核心点 (1)前序 (2)中序 (3)后序 三&#xff1a;判断两颗树是否相同 四&#xff1a;判断二叉树是否对称 五&#xff1a;判断一颗树是否为另一颗树的子树 六&#xff1a;平衡二叉树 七&…

创建的django项目生成后,没有默认的数据库生成

目录 1、尚未执行迁移 1.1 首先&#xff0c;在setting.py文件中配置数据库链接 1.2 确保在Terminal运行已经执行了如下命令来创建数据库表格。 1.3 在数据库刷新就有了 2、已经使用了自定义的数据库 3、尚未配置默认数据库 1、尚未执行迁移 1.1 首先&#xff0c;在setting.…

介绍一款优秀的网址导航,可以部署到自己公司内部:hexo-theme-webstack

GitHub - HCLonely/hexo-theme-webstack: A hexo theme based on webstack. | 一个基于webstack的hexo主题。 中文文档 A Hexo theme based on WebStackPage. Installation hexo > 4.0 git clone https://github.com/HCLonely/hexo-theme-webstack themes/webstack hexo …

C++中的stack容器

文章目录 stack的介绍stack的使用 stack的介绍 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作特性的环境中&#xff0c;只能在容器的一端进行插入删除&#xff1b;stack是作为容器适配器被实现的&#xff0c;容器适配器即是对特性类封装作为其底层的容器&#xf…

101-Linux_I/O复用方法之select

文章目录 1.select系统调用的作用2.select系统调用的原型3.集合fdset4.使用select实现TCP服务器(1)服务器端代码:(2)客户端代码(3)运行结果截图 1.select系统调用的作用 在一段指定时间内&#xff0c;监听用户感兴趣的文件描述符的可读、可写和异常等事件 2.select系统调用的…