国外网站后台模板/网站新站整站排名
IO Day2
- IO相关函数
- 标准文件流指针
- 缓冲区刷新时机
- 作业
IO相关函数
time
#include <time.h>time_t time(time_t *tloc);功能:返回1970年到现在的秒数参数:计算出来的秒数;返回值;成功返回1970年到现在的秒数,失败返回-1并置位错误码eg:time_t tm;time(&tm); //tm将保存计算结果eg:time_t tm;tm = time(NULL); //效果与上面相同struct tm *localtime(const time_t *timep);功能:时间的秒数作为参数,算出具体的年月日,时分秒参数;秒数返回值;成功返回tm指针,失败返回NULL并置位错误码struct tm {int tm_sec; /* Seconds (0-60) */int tm_min; /* Minutes (0-59) */int tm_hour; /* Hours (0-23) */int tm_mday; /* Day of the month (1-31) */int tm_mon; /* Month (0-11) */int tm_year; /* Year - 1900 */int tm_wday; /* Day of the week (0-6, Sunday = 0) */int tm_yday; /* Day in the year (0-365, 1 Jan = 0) */int tm_isdst; /* Daylight saving time */};
fscanf
fprintf
#include <stdio.h>int fscanf(FILE *stream, const char *format, ...);功能:读取文件内容,按照格式转换字符串的形式存入变量中,遇到空格,回车,tab键(制表符),换行自动结束。参数1:文件指针参数2:格式转换字符串参数3,4,5...:需要存储扫描到的结果注意:只能是变量返回值:成功返回读取的项数,失败返回0,到达文件末尾返回EOFint fprintf(FILE *stream, const char *format, ...);功能:将变量或者常量的内容按照格式转换字符串的形式写入到文件,遇到\0写入结束.参数1:文件指针参数2:格式转换字符串参数3,4,5...:要存入文件的变量或者常量返回值:成功返回读取的项数,失败返回0,到达文件末尾返回EOF。
fread
fwrite
主要针对二进制文件的读写操作,内存按照扇区存储,每8个扇区是一块
#include <stdio.h>size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);功能:从stream指向的文件中读取nmemb项数据,每一项是size字节,存入到ptr指向的空间。参数1:存储读取内容的指针,可以存储任意类型数据参数2:读取的每一项大小单位是字节参数3:读取的项数参数4:文件指针返回值:成功返回读取的项数,读取到文件末尾返回0,该无法识别读取失败还是读取到文件末尾size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);功能:将ptr指向的数据写入到stream指向的文件中,写入nmemb项,每一项size字节。参数1:存储写入内容的指针,可以存储任意类型数据参数2:写入的每一项大小单位是字节参数3:写入的项数参数4:文件指针返回值:成功返回写入的项数,写入失败返回0
feof
ferror
#include <stdio.h>int feof(FILE *stream);功能:检测光标是否到达文件末尾,到达返回非0,未到达返回0参数:文件指针int ferror(FILE *stream);功能:检测光标是否出错,出错返回非0,未出错返回0.参数:文件指针
fseek
#include <stdio.h>int fseek(FILE *stream, long offset, int whence);功能:移动文件内光标函数。参数1:文件指针参数2:>0:往后移动字节数<0:往前移动字节数=0:不移动参数3:SEEK_SET:从头开始移动SEEK_CUR:从当前位置开始移动SEEK_END:从末尾开始移动eg:光标位于文件的开头fseek(fp,SEEK_SET,0);光标从头向后移动10字节。fseek(fp,SEEK_SET,10);光标从末尾向前移动5字节fseek(fp,SEEK_END,-5);
标准文件流指针
stdin
:标准输入流指针 空间:1024
stdout
:标准输出流指针 空间:1024
stderr
:标准错误流指针 空间:0
缓冲区刷新时机
行缓冲区(stdin
stdout
)大小1024
不缓冲区(stderr
)大小是0
全缓冲区(FILE *fp
)大小是4096
行缓冲刷新时机
- 程序结束时刷新
- 遇到换行时刷新
- 输入输出发生切换时刷新
- 使用函数
fflush
手动刷新 - 缓冲区溢出时刷新
- 关闭输入输出流时也刷新
全缓冲刷新时机
- 程序结束时刷新
- 输入输出切换时刷新
- 缓冲区溢出时刷新
- 关闭文件指针刷新
作业
- 使用
fscannf
和fprintf
实现文件拷贝
#include <myhead.h>int main(int argc, const char *argv[])
{FILE *fp1 = fopen("./1.txt" , "r"); //只读方式打开1.txtif (NULL == fp1){perror("open");return -1; //打开失败}FILE *fp2 = fopen("./2.txt" , "w"); //只写方式打开2.txtif (NULL == fp2){perror("open");return -1; //打开失败}char buff[1024] = ""; //定义缓冲区buffchar ch; //用于读取分隔符//判断是否读取成功while (fscanf(fp1,"%s%c",buff,&ch) > 0){//将缓冲区内容写进fp2fprintf(fp2,"%s%c",buff,ch);}return 0;
}
运行结果
- 使用
fwrite
和fread
实现文件拷贝
#include <myhead.h>int main(int argc, const char *argv[])
{FILE *fp1 = fopen("./homework1.c" , "r"); //只读打开文件1if (NULL == fp1){perror("fopen");return -1;}FILE *fp2 = fopen("./3.txt" , "w"); //只写打开文件2if (NULL == fp2){perror("fopen");return -1;}char buff[1024] = ""; //设置缓冲区int res ;//判断读取是否成功while ((res = fread(buff,sizeof(char),1024,fp1))!=0){fwrite(buff,sizeof(char),res,fp2);}//将流定位到最后一次未写入的开始fseek(fp1,-1024,SEEK_CUR);//清除缓冲区bzero(buff,sizeof(buff));//进行最后一次读取写入fread(buff,sizeof(char),1024,fp1);fwrite(buff,sizeof(char),1024,fp2);fclose(fp1);fclose(fp2);fp1 = NULL;fp2 = NULL;return 0;
}
运行结果
- 使用文件存储注册信息,完成登录系统
//main.c
#include <myhead.h>
#include "signin.h"int main(int argc, const char *argv[])
{int select;if (argc != 2){printf("参数错误\n");return -1;}while (1){ printf("\t\t\t1.注册\n");printf("\t\t\t2.登录\n");printf("\t\t\t0.退出\n");printf("请输入要使用的功能:");scanf("%d",&select);getchar();switch(select){case 1:regist(argv[1]);break;case 2:login(argv[1]);break;case 0:exit(EXIT_SUCCESS);break;default:printf("输入的功能有误");break;}}return 0;
}//signin.c
#include "signin.h"int regist(const char *file)
{char name[20];char code[20];printf("请输入用户名:");fgets(name,sizeof(name),stdin);printf("请输入密码:");fgets(code,sizeof(code),stdin);name[strlen(name)-1] = '\0';code[strlen(code)-1] = '\0';FILE *fp = fopen(file, "a"); //追加方式打开if (NULL == fp){perror("fopen");return -1;}fprintf(fp,"%s %s ", name, code); //将账户密码写入文件fclose(fp);fp = NULL;return 0;
}int login(const char *file)
{char name[20];char code[20];char name_t[20];char code_t[20];printf("请输入用户名:");fgets(name_t,sizeof(name_t),stdin);printf("请输入密码:");fgets(code_t,sizeof(code_t),stdin);name_t[strlen(name_t)-1] = '\0';code_t[strlen(code_t)-1] = '\0';FILE *fp = fopen(file, "r");if (NULL == fp){perror("fopen");return -1;}while (1){int res = fscanf(fp,"%s %s", name, code);if (EOF == res){break;}if (strcmp(code_t,code) == 0 && strcmp(name_t,name) == 0){printf("登录成功\n");return 0;}}printf("登录失败\n");fclose(fp);fp = NULL;return 0;
}//signin.h
#ifndef SIGNIN_H
#define SIGNIN_H
#include <myhead.h>
int regist(const char *file);
int login(const char *file);
#endif
运行结果
相关文章:

嵌入式入门Day26
IO Day2 IO相关函数标准文件流指针缓冲区刷新时机作业 IO相关函数 time #include <time.h>time_t time(time_t *tloc);功能:返回1970年到现在的秒数参数:计算出来的秒数;返回值;成功返回1970年到现在的秒数,失…...

【Vue3项目实战系列一】—— 从零开始一个vue3项目 vue3+javascript+vite 非常详细 手把手教学
😉 你好呀,我是爱编程的Sherry,很高兴在这里遇见你!我是一名拥有十多年开发经验的前端工程师。这一路走来,面对困难时也曾感到迷茫,凭借不懈的努力和坚持,重新找到了前进的方向。我的人生格言是…...

Python_Flask04(牛马问答平台01)
项目名称:牛马问答平台 项目简介:1.主要用来给社会上的牛马们探讨老板的恶心之处。 2. 用来学习交流。 技术手段:Python3.x Flask render_template pymysql flask_sqlalchemy........ 注意该博客为迭代项目,于最后一期展示完整…...

Java转C之并发和多线程
提纲: 概念介绍与对比概述 简述Java与C在并发和多线程方面的核心区别解释C11标准、POSIX、C11 <threads.h>、Pthread等名词 Java多线程与并发回顾 线程、Runnable、ExecutorService概念说明同步关键字与工具类含义 C并发基础 没有Java式的内置线程类…...

针对一个系统的权限管理这样的业务场景,使用各设计模式解说
通义灵码 下面将介绍如何在Java中使用不同的设计模式来实现权限管理系统。每个设计模式都有其特定的应用场景和实现方式,我们将逐一讲解。 1. 单例模式 (Singleton Pattern) 应用场景:确保权限管理服务在整个系统中只有一个实例,避免重复创…...
Android AppCompatImageView View.Gone状态切换到View.VISIBLE重新layout,Kotlin
Android AppCompatImageView View.Gone状态切换到View.VISIBLE重新layout,Kotlin import android.content.Context import android.util.AttributeSet import android.util.Log import androidx.appcompat.widget.AppCompatImageViewclass MyImageView : AppCompatI…...

在云上轻松部署达梦数据库
达梦数据库(DM Database)是由达梦数据库有限公司开发的一款关系型数据库管理系统(RDBMS)。作为国内领先的数据库产品,达梦数据库在政府、金融、能源、电信、交通、医疗、教育等多个行业得到广泛应用,尤其在…...

什么是厄尔米特(Hermitian)矩阵?
厄米矩阵(Hermitian Matrix)定义 在数学和物理中,厄米矩阵是满足以下条件的复方阵: A A † \mathbf{A}\mathbf{A}^\dagger AA† 其中, A † \mathbf{A}^\dagger A†表示矩阵 A \mathbf{A} A的共轭转置,即…...

React - useActionState、useFormStatus与表单处理
参考文档:react18.3.1官方文档 一些概念: React 的 Canary 和 Experimental 频道是 React 团队用于发布和测试新功能的渠道。 useActionState useActionState 是一个可以根据某个表单动作的结果更新 state 的 Hook。 const [state, formAction, isPe…...

v3账号密码登录随机图片验证码
安装插件 pnpm i identify --save图形验证码组件 <template><div class"s-canvas"><!-- 图形验证码的宽和高都来自于父组件的传值,若父组件没有传值,那么就按当前子组件的默认值进行渲染 --><canvas id"s-canvas&…...

不只是请求和响应:使用Fiddler解读Cookie与状态码全指南(下)
欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持! 不只是请求和响应:使用Fiddler抓包HTTP协议全指南(上)_fiddler 获取响应脚本-CSDN博客https://blog.csdn.net/Chunfeng6yugan/article/details/144005872?spm1001.2014.3001.5501 不只是请求和响…...

java+springboot+mysql游乐园管理系统
项目介绍: 使用javaspringbootmysql开发的游乐园管理系统,系统包含管理员、员工、用户角色,功能如下: 管理员:登录后台;首页数据统计;员工管理;用户管理;游乐项目管理&…...

@RequestBody,getparameter,@RequestParam,@PathVariable之间的区别和联系
RequestBody、RequestParam、PathVariable和getParameter(你提到的可能是Java Servlet API中的方法)是用于处理HTTP请求参数的不同机制。它们各自有不同的用途和适用场景,下面将详细解释它们之间的区别和联系。 1. RequestBody 用途…...

Linx下自动化之路:Redis安装包一键安装脚本实现无网极速部署并注册成服务
目录 简介 安装包下载 安装脚本 服务常用命令 简介 通过一键安装脚本实现 Redis 安装包的无网极速部署,并将其成功注册为系统服务,开机自启。 安装包下载 redis-7.0.8.tar.gzhttp://download.redis.io/releases/redis-7.0.8.tar.gz 安装脚本 修…...

VMware虚拟机搭建和镜像配置
VMware虚拟机搭建和镜像配置 下载安装VMware 开始下载 更改安装路径,需要一个大空间的盘 更改后下一步 下一步后,选择不主动升级更新 一直下一步 直到安装完毕 输入许可密钥,我下载的版本是12,输入完成点击输入ÿ…...

红日靶场vulnstark 4靶机的测试报告[细节](一)
目录 一、测试环境 1、系统环境 2、注意事项 3、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、漏洞利用Getshell ①Struts 2 s2-045漏洞 手工利用s2-45漏洞 Msf综合利用 ②Tomcat框架(CVE-2017-12615) ③phpMyAdmin(CVE-2018-12613) 构造语句写入冰蝎木…...

深入详解人工智能机器学习常见算法——线性回归算法
深入解析线性回归算法 线性回归是机器学习和统计学中最基本、最常用的预测建模技术之一。它通过线性关系描述因变量与一个或多个自变量之间的联系,帮助我们进行数据建模和预测。本篇文章将详细介绍线性回归的基础知识、算法原理、核心概念、实现方法以及其在实际问题…...

Python 开发环境搭建
Python 开发环境搭建 flyfish 版本 Ubuntu 22.04.5 LTS PyTorch 2.5.1 cuda 12.4 python 3.12.7安装 Anaconda3 依赖 sudo apt-get install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6安装命令 …...

OpenCV相机标定与3D重建(9)相机标定函数calibrateCameraRO()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::calibrateCameraRO 是 OpenCV 中用于相机标定的函数,它允许固定某些点来进行更精确的标定。 函数原型 double cv::calibrateCa…...

flink终止提交给yarn的任务
接上文:一文说清flink从编码到部署上线 1.查看正在执行的flink 访问地址(参考):http://10.86.97.191:8099/cluster/apps 2.终止任务 yarn application -kill appID 本文为: yarn application -kill application_17…...

算法刷题Day14:BM36 判断是不是平衡二叉树
题目链接 描述 输入一棵节点数为 n 二叉树,判断该二叉树是否是平衡二叉树。 在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树 平衡二叉树(Balanced Binary Tree),具有以下性质:它是…...

【Golang】Go语言编程思想(六):Channel,第一节,介绍Channel
Channel 下面的几个例子将会展示如何定义一个 channel: func chanDemo() {var c chan int // chan int 的含义是, c 是一个 channel, 里面的内容是 int// 上面的声明语句将会创建一个 nil channel, c nil, 它的作用将在 select 当// 中体现 }创建一个非 nil 的 c…...

【Flux.jl】 卷积神经网络
Flux.jl 是包含卷积神经网络的, 但是官方API文件中没有给出一个完整的程序框架, 只是对所需神经元给了局部解释, 此外对 model-zoo 模型动物园中的案例没有及时跟着 Flux.jl 的版本更新, 也无法运行出来结果。 因此本文搭建了一个完整可训练的卷积神经网络。 Conv 卷积算子…...

大模型在辅导场景的深度应用,猿辅导素养课推出启发性“AI作文通”
猿辅导集团旗下的飞象星球面向学校发布“飞象AI作文”,让教育大模型成为老师的AI批改助手、学生的写作助手。芥末堆注意到,猿辅导集团旗下的猿辅导素养课也推出了名为“AI作文通”的AI作文功能,已于7月正式大规模上线,在AI教育领域…...

深入了解架构中常见的4种缓存模式及其实现
4种缓存模式 随着应用程序的复杂性日益增加,缓存管理变得至关重要。缓存不仅能有效减轻数据库负载,还能显著提升数据访问速度。选择合适的缓存模式能够在不同的业务场景下发挥出最佳效果。 本文将详细介绍四种常见的缓存模式:Cache-Aside (…...

Hermes engine on React Native 0.72.5,function无法toString转成字符串
问题描述 Hermes engine on React Native 0.72.5,function无法toString转成字符串 环境 npm6.14.18 node16.17.1项目依赖 "react": "18.2.0", "react-dom": "18.2.0", "react-native": "0.72.5", …...

Spring Boot + MySQL 多线程查询与联表查询性能对比分析
Spring Boot MySQL: 多线程查询与联表查询性能对比分析 背景 在现代 Web 应用开发中,数据库性能是影响系统响应时间和用户体验的关键因素之一。随着业务需求的不断增长,单表查询和联表查询的效率问题日益凸显。特别是在 Spring Boot 项目中࿰…...

Java 设计模式~工厂模式
在java开发,工厂模式应用场景有哪些?在Spring boot原码中 有哪些工厂类,并做相应的代码介绍。 工厂模式 工厂模式(Factory Pattern)是Java中一种常用的创建型设计模式,它提供了一种创建对象的最佳方式。此…...

OmicsTools生信环境全自动化安装配置教程,代做生信分析和辅导
OmicsTools软件介绍和下载安装配置 软件介绍 我开发了一款本地电脑无限使用的零代码生信数据分析作软图神器电脑软件OmicsTools,旨在成为可以做各种医学生物生信领域科研数据分析作图的的全能科研软件,欢迎大家使用OmicsTools进行生物医学科研数据分析…...

鸿蒙HarmonyOS应用开发 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
鸿蒙心路旅程:探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力 HarmonyOS Next 是华为推出的全新一代操作系统,旨在进一步推动分布式技术的深度应用和生态融合。本文将从技术特点、应用场景入手,通过实战案例与代码示例&…...