discuz可以做门户网站么/公司网站建设流程

discuz可以做门户网站么,公司网站建设流程,网页设计与网站建设的理解,高端品牌网站建设电商网站设计个人主页 今天我们来讲一下有关文件的相关操作,希望看完这篇文章对你有所帮助,大力感谢你对博主的支持! 文章目录 ⭐一、为什么使用文件🎉二、什么是文件2.1 程序文件2.2 数据文件2.3 文件名 🎡三、二进制文件和文本…

在这里插入图片描述
个人主页
在这里插入图片描述

今天我们来讲一下有关文件的相关操作,希望看完这篇文章对你有所帮助,大力感谢你对博主的支持!

文章目录

  • ⭐一、为什么使用文件
  • 🎉二、什么是文件
    • 2.1 程序文件
    • 2.2 数据文件
    • 2.3 文件名
  • 🎡三、二进制文件和文本文件
  • 🚀四、文件的打开和关闭
    • 4.1 流和标准流
    • 4.2 文件指针
    • 4.3 文件的打开和关闭
  • 🏝️五、文件的顺序读写
    • 5.1 fgetc (字符输入函数)
    • 5.2 fputc (字符输出函数)
    • 5.3 fgets (文本行输入函数)
    • 5.4 fputs (文本行输出函数)
    • 5.5 fscanf (格式化输入函数)
    • 5.6 fprintf (格式化输出函数)
    • 5.7 fread (二进制输入)
    • 5.8 fwrite (二进制输出)
  • 🎄六、文件的随机读写
    • 6.1 fseek
    • 6.2 ftell
    • 6.3 rewind
  • 🚆七、文件读取结束的判定
  • 🚘八、文件缓冲区

⭐一、为什么使用文件

在日常中,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存就会被回收,数据就丢失了。我们再次运行程序时就看不到上次程序的数据。因此像要将数据进行持久化的保存,我们就需要使用文件。

🎉二、什么是文件

磁盘(硬盘)上的文件是文件。

但是在设计程序中,我们一般把文件分为两种:一是程序文件,另一个是数据文件。(从文件功能的角度进行分类)

2.1 程序文件

程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows
环境后缀为.exe)。

2.2 数据文件

程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。

2.3 文件名

文件名包含3部分:文件路径+文件名主干+文件后缀

例如:c:\code\test.txt

注意:文件标识常被称为文件名。

🎡三、二进制文件和文本文件

数据在内存中以二进制的形式存储,如果不加转换的输出到外存的文件中,就是二进制文件

如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。

我们以二进制存储的方式举例:

int main()
{int a = 10000;FILE * pf = fopen("test.txt", "wb");fwrite(&a, 4, 1, pf);//⼆进制的形式写到⽂件中 fclose(pf);pf = NULL;return 0;
}

由于我们是以二进制的存储方式,因此打开文件的方式也要用二进制的打开方式

在这里插入图片描述
在这里插入图片描述
编译器是以小端存储且以16进制的方式进行打印

🚀四、文件的打开和关闭

4.1 流和标准流


• 由于我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,而不同的外部设备的输入和输出操作各不相同,因此为了程序员方便操作,抽象出了流的概念,我们可以把流想象成流淌着字符的河。

• C程序针对文件、画面和键盘等的数据输入和输出操作都是通过流来进行操作的。

• 一般情况下,我们要想向从流里写数据,或者从流中读取数据,都是需要打开流,然后操作。

标准流
为什么我们从键盘中输入数据,向屏幕上输出数据时,并没有打开流呢?那是因为C语言程序在启动的时候,默认打开了3个流:
stdin - 标准输入流,在大多数的环境中从键盘输入,scanf函数就是从标准输入流中读取数据。
stdout - 标准输出流,大多数的环境中输出至显示器界面时,printf函数就是将信息输出到标准输出流中。
stderr - 标准错误流,大多数环境中输出到显示器界面。

4.2 文件指针

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

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

4.3 文件的打开和关闭

文件在读写之前应该先打开文件,在使用结束之后应该关闭文件

ANSIC规定使用 fopen 函数来打开文件, fclose 函数来关闭文件。

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

文件的打开模式有很多种,例如:“r” 表示输入数据,打开一个已经存在的文本文件;“w” 表示输出数据,打开一个文本文件,若该文件不存在则建立一个新文件;“a” 表示向文本文件末尾添加数据等等,这里就不一一赘述了。

下面我们就以写的方式举个例子:

在这里插入图片描述

🏝️五、文件的顺序读写

5.1 fgetc (字符输入函数)

函数形式:int fgetc ( FILE * stream );

该函数成功读入数据时会返回读取字符的ASCII值,否则则会返回EOF。

例如:假如.c路径下有一文件名叫test.txt,该文件中有字符串”abcdef"

在这里插入图片描述

5.2 fputc (字符输出函数)

函数形式:int fputc ( int character, FILE * stream );

该函数返回文件指针当前指向的字符,文件指针向后移动一位
如果文件指针位于文件末尾,那么就返回EOF,并为流设置feof的文件结束显示器
如果文件读取错误,同样返回EOF,为流设置为错误显示器ferror

例如:向一个文件写入26个小写英文字符
在这里插入图片描述

5.3 fgets (文本行输入函数)

函数形式:char * fgets ( char * str, int num, FILE * stream );

从流中读取字符,并以字符串的形式存储到str中。 直到读够(num - 1)个字符,或到达换行符,或读到文件末尾时才停止

如果读取成功,则返回str的头指针,若读取失败,则为流设置错误显示器,并返回空指针。

在这里插入图片描述

5.4 fputs (文本行输出函数)

函数形式:int fputs ( const char * str, FILE * stream );

将str中的字符串输出到流中,结束符‘\0’不会被写入

在这里插入图片描述

5.5 fscanf (格式化输入函数)

函数形式:int fscanf ( FILE * stream, const char * format, ... );

以格式化的形式从流中读取数据

例如:从文件中读取字符串 “abcd”

在这里插入图片描述

5.6 fprintf (格式化输出函数)

函数形式:int fprintf ( FILE * stream, const char * format, ... );

将格式化的数据输出到指定流。

在这里插入图片描述

5.7 fread (二进制输入)

函数形式:size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

二进制的形式从流中读取count个元素,每个元素的大小为size字节,并将它们存储在 ptr 指定的内存块中。

返回成功读取的元素总数。

在这里插入图片描述

5.8 fwrite (二进制输出)

函数形式:size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );

二进制的形式将ptr存储的数据写入流中,一共写入count个元素,每个元素的大小为size字节

返回成功写入的元素总数。

int main()
{int a = 10000;FILE * pf = fopen("test.txt", "wb");fwrite(&a, 4, 1, pf);//⼆进制的形式写到⽂件中 fclose(pf);pf = NULL;return 0;
}

🎄六、文件的随机读写

6.1 fseek

函数形式:int fseek ( FILE * stream, long int offset, int origin );

offset为偏移量

origin为起始位置,有三种取值:

SEEK_SET:文件头
SEEK_CUR:文件指针的当前位置
SEEK_END:文件尾

如果成功,则返回0,否则返回非零值

例如:在data.txt文件中有字符串"abcdefghi",从a的位置偏移四位就得到f
在这里插入图片描述

6.2 ftell

函数形式:long int ftell ( FILE * stream );

返回文件指针相对于起始位置的偏移量

假设.c路径上的data.txt文件中存储字符串“abcdefghijk”
在这里插入图片描述

6.3 rewind

函数形式:void rewind ( FILE * stream );

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

在这里插入图片描述

🚆七、文件读取结束的判定

牢记:在文件读取过程中,不能用feof函数的返回值直接来判断文件的是否结束。

feof 的作用是:当文件读取结束的时候,判断是读取结束的原因是否是遇到文件尾结束。

• 文本文件读取是否结束,判断返回值是否为 EOF

• fgetc 判断是否为 EOF

• fgets 判断返回值是否为 NULL

二进制文件的读取结束判断: 判断返回值是否小于实际要读的个数

🚘八、文件缓冲区

ANSIC标准采用“缓冲文件系统”来处理的数据文件的,所谓缓冲文件系统,是指系统能自动地在内存中为程序中每⼀个正在使用的文件开辟⼀块“文件缓冲区”。从内存向磁盘输出数据会先送到内存中的缓冲区,装满缓冲区后才⼀起送到磁盘上。

缓冲区的大小根据C编译系统决定的。

在这里插入图片描述
今天的分享到这里就结束了,如果感到对你有所帮助,希望给博主一键三连,你的支持就是对博主最大的鼓励,我们下期再见!

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

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

相关文章

基于web的家政服务网站

内容摘要 由于互联网的使用,人们在管理、应用、服务等领域使用数据更加简洁、方便,大大提高了工作效率。互联网正逐渐融入我们的生活,影响和改变我们的生活。 家政服务管理系统是典型的信息管理系统(MIS)。其开发主要…

【leetcode hot 100 739】每日温度

解法一&#xff1a;暴力解法 class Solution {public int[] dailyTemperatures(int[] temperatures) {int ntemperatures.length; // 指向要找下一个更高温度的地方int[] result new int[n];for(int left0;left<n;left){int rightleft1; // 指向正在找最高温度的地方wh…

算法 | 麻雀搜索算法原理,公式,改进算法综述,应用场景及matlab完整代码

一、麻雀搜索算法(SSA)原理 1. 算法基础 麻雀搜索算法(Sparrow Search Algorithm, SSA)是2020年提出的一种群体智能优化算法,灵感来源于麻雀群体的觅食与反捕食行为。算法将麻雀分为三类角色:发现者(Producer):适应度最高,负责探索全局最优区域;加入者(Follower)…

CAT1模块 EC800M HTTP 使用后续记录

记录一下 CAT1 模块EC800 HTTP 使用后续遇到的问题 by 矜辰所致目录 前言一、一些功能的完善1.1 新的交互指令添加1.2 连不上网络处理 二、问题出现三、分析及解决3.1 定位问题3.2 问题分析与解决3.2.1 查看变量在内存中的位置 3.3 数据类型说明3.3.1 常用格式化输出符号…

单纯形法之大M法

1. 问题背景与标准化 在求解某些线性规划问题时&#xff0c;往往难以直接找到初始的基本可行解。特别是当约束中存在等式或 “≥” 类型的不等式时&#xff0c;我们需要引入人工变量来构造一个初始可行解。 考虑如下标准形式问题&#xff08;假设为最大化问题&#xff09;&am…

Springboot集成Debezium监听postgresql变更

1.创建springboot项目引入pom <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>io.debezium</groupI…

报错 standard_init_linux.go:228: exec user process caused: exec format error

docker logs 容器名 报错&#xff1a; standard_init_linux.go:228: exec user process caused: exec format error 或者 standard_init_linux.go:228: exec user process caused: input/output error 排查思路 1、检查源镜像的框架是否正确&#xff0c;是否amd64&#x…

Go 代理爬虫

现在注册&#xff0c;还送15美金注册奖励金 --- 亮数据-网络IP代理及全网数据一站式服务商 使用代理服务器&#xff0c;通过 Colly、Goquery、Selenium 进行网络爬虫的基础示例程序 本仓库包含两个分支&#xff1a; basic 分支包含供 Go Proxy Servers 这篇文章改动的基础代码…

STM32实现智能温控系统(暖手宝):PID 算法 + DS18B20+OLED 显示,[学习 PID 优质项目]

一、项目概述 本文基于 STM32F103C8T6 单片机&#xff0c;设计了一个高精度温度控制系统。通过 DS18B20 采集温度&#xff0c;采用位置型 PID 算法控制 PWM 输出驱动 MOS 管加热Pi膜&#xff0c;配合 OLED 实时显示温度数据。系统可稳定将 PI 膜加热至 40℃&#xff0c;适用于…

从零开始:使用Luatools工具高效烧录Air780EPM核心板项目的完整指南

本文将深入讲解如何使用Luatools工具烧录一个具体的项目到Air780EPM开发板中。如何使用官方推荐的Luatools工具&#xff08;一款跨平台、命令行驱动的烧录利器&#xff09;&#xff0c;通过“环境配置→硬件连接→参数设置→一键烧录”四大步骤&#xff0c;帮助用户实现Air780E…

2024年认证杯SPSSPRO杯数学建模C题(第二阶段)云中的海盐全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 C题 云中的海盐 原题再现&#xff1a; 巴黎气候协定提出的目标是&#xff1a;在2100年前&#xff0c;把全球平均气温相对于工业革命以前的气温升幅控制在不超过2摄氏度的水平&#xff0c;并为1.5摄氏度而努力。但事实上&#xff0c;许多之前的…

大疆上云api介绍

概述 目前对于 DJI 无人机接入第三方云平台,主要是基于 MSDK 开发定制 App,然后自己定义私有上云通信协议连接到云平台中。这样对于核心业务是开发云平台,无人机只是其中一个接入硬件设备的开发者来说,重新基于 MSDK 开发 App 工作量大、成本高,同时还需要花很多精力在无人…

云原生之开源遥测框架OpenTelemetry(在 Gin 框架中使用 OpenTelemetry 进行分布式追踪和监控)

文章目录 云原生之开源遥测框架OpenTelemetry背景什么是可观测性&#xff1f; 什么是 OpenTelemetry&#xff1f;Opentelemetry的主要优势有以下几点&#xff1a;理解分布式链路日志Spans分布式链路 在 Gin 框架中使用 OpenTelemetry 进行分布式追踪和监控0. 整体思路1. 初始化…

2.(vue3.x+vite)使用vue-router

前端技术社区总目录(订阅之前请先查看该博客) 效果预览 路由配置的“/”与“helloWorld”都可以访问到以下内容 http://10.11.0.87:4000/#/ http://10.11.0.87:4000/#/helloWorld 1:安装vue-router npm i vue-router 2:创建router文件 在src的目录下创建router文件夹…

VUE3 路由配置

1.下载 VueRouter 模块 在命令行中输入 yarn add vue-router 2.导⼊相关函数 在自己创建的router/index.js 文件中 import { createRouter, createWebHashHistory } from vue-router 3.创建路由实例 在自己创建的router/index.js 文件中 const theFirstRouter ()>{return…

NetMizer-日志管理系统-远程命令执行漏洞挖掘

漏洞描述&#xff1a;NetMizer 日志管理系统 cmd.php中存在远程命令执行漏洞&#xff0c;攻击者通过传入 cmd参数即可命令执行 1.fofa搜素语句 title"NetMizer 日志管理系统" 2.漏洞验证 网站页面 验证POC /data/manage/cmd.php?cmdid

Contactile三轴触觉传感器:多维力感赋能机器人抓取

在非结构化环境中&#xff0c;机器人对物体的精准抓取与操作始终面临巨大挑战。传统传感器因无法全面感知触觉参数&#xff08;如三维力、位移、摩擦&#xff09;&#xff0c;难以适应复杂多变的场景。Contactile推出的三轴触觉力传感器&#xff0c;通过仿生设计与创新光学技术…

OpenCV三维解算常用方法C++

如果标定过程是通过OpenCV张正友标定法实现的&#xff0c;得到的内参外参保存在.txt文件中是这样的形式&#xff1a; ① 内参intrinsics.txt&#xff1a; ② 外参extrinsics.txt&#xff1a; 那么可以通过如下方法读取.txt文件获取左右相机内外参&#xff0c;主要包括三维解算…

【实战案例】永洪vividime:精准赋能零售行业,实现数据洞察与业务增长

在零售食品行业变革加速、市场竞争白热化的背景下&#xff0c;XX集团作为休闲食品领域头部企业&#xff0c;面临消费趋势变化、宏观经济承压及业绩增长乏力的多重挑战。为破解增长困境&#xff0c;集团将“收入增长金额”确立为核心战略指标&#xff08;北极星指标&#xff09;…

面试题分享-多线程顺序打印奇偶数

目录 1.题目详情 2.解题思路 2.1.分析题目 2.2.解析思路 3.代码实现 4.运行结果 1.题目详情 昨天刷抖音&#xff0c;遇到一个面试题&#xff0c;描述如下&#xff1a; 请使用两个线程&#xff0c;分别顺序交替打印奇数和偶数&#xff0c;直到10为止。例如有两个线程&#…