当前位置: 首页 > news >正文

C语言文件读写,文件相关操作

文章目录

  • C语言文件读写,文件相关操作
    • 1.C语言万物皆是地址,文件读操作
    • 2.文件的写
    • 3.文件的复制
    • 4.获取文件的大小
    • 5.文件的加密解密

C语言文件读写,文件相关操作

1.C语言万物皆是地址,文件读操作

//
// Created by MagicBook on 2023-10-22.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>int main() {//文件路径,r,w,rb,rw//返回值结构体char *fileName = "C:\\Users\\MagicBook\\Desktop\\tv.txt";//读的权限,文件必须存在FILE *file = fopen(fileName, "r");if (!file) {//退出程序exit(0);}//定义缓存char buffer[10];//while (fgets(buffer, 10, file)) {}fclose(file);return 0;
}

2.文件的写

//
// Created by MagicBook on 2023-10-22.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>int main() {//文件路径,r,w,rb,rw//返回值结构体char *fileName = "C:\\Users\\MagicBook\\Desktop\\tvv.txt";//写的权限,会自动生成文件FILE *file = fopen(fileName, "w");if (!file) {//退出程序exit(0);}fputs("sdsadds", file);fclose(file);return 0;
}

3.文件的复制

//
// Created by MagicBook on 2023-10-22.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>//二进制文件来操作rb,rw,
int main() {//文件路径,r,w,rb,rw//返回值结构体char *fileName = "C:\\Users\\MagicBook\\Desktop\\tv.txt";//目标char *fileNameCopy = "C:\\Users\\MagicBook\\Desktop\\tvv.txt";//读取二进制数据FILE *file1 = fopen(fileName, "rb");//写入二进制数据FILE *file2 = fopen(fileName, "rw");if (!file1 || !file2) {exit(0);}//412 * 4int buffer[512];//每次接收的长度int len;//容器buffer,每次偏移多少,容器大小,while ((len = fread(buffer, sizeof(int), sizeof(buffer) / sizeof(int), file1) != 0)) {fwrite(buffer, sizeof(int), len, fileNameCopy);}fclose(file1);fclose(file2);return 0;
}

4.获取文件的大小

//
// Created by MagicBook on 2023-10-22.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>//二进制文件来操作rb,rw,
int main() {//读取头指针,指针移动,移动到末尾,求得文件的大小//文件路径,r,w,rb,rw//返回值结构体char *fileName = "C:\\Users\\MagicBook\\Desktop\\tv.txt";//读取二进制数据FILE *file1 = fopen(fileName, "rb");//写入二进制数据FILE *file2 = fopen(fileName, "rw");if (!file1 || !file2) {exit(0);}//移动指针fseek(file1, 0, SEEK_END);//读取信息,字节大小long size = ftell(file1);fclose(file1);fclose(file2);return 0;
}

5.文件的加密解密

加密

//
// Created by MagicBook on 2023-10-22.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>//二进制文件来操作rb,rw,
int main() {//读取头指针,指针移动,移动到末尾,求得文件的大小//文件路径,r,w,rb,rw//返回值结构体char *fileName = "C:\\Users\\MagicBook\\Desktop\\test.png";//加密char *fileNameEncode = "C:\\Users\\MagicBook\\Desktop\\test_encode.png";//读取二进制数据FILE *file1 = fopen(fileName, "rb");//写入二进制数据FILE *file2 = fopen(fileNameEncode, "rw");if (!file1 || !file2) {exit(0);}//加密:破坏二进制文件//解密:还原文件//接收读取的值int c;//返回值EOFwhile ((c == fgetc(file1) != EOF)) {fputc(c^5,file2);}fclose(file1);fclose(file2);return 0;
}

解密

//
// Created by MagicBook on 2023-10-22.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>//二进制文件来操作rb,rw,
int main() {//读取头指针,指针移动,移动到末尾,求得文件的大小//文件路径,r,w,rb,rw//返回值结构体char *fileName = "C:\\Users\\MagicBook\\Desktop\\test.png";//加密char *fileNameEncode = "C:\\Users\\MagicBook\\Desktop\\test_encode.png";//密钥char *password = "123456";//读取二进制数据FILE *file1 = fopen(fileName, "rb");//写入二进制数据FILE *file2 = fopen(fileNameEncode, "rw");if (!file1 || !file2) {exit(0);}//加密:破坏二进制文件//解密:还原文件//接收读取的值int c;int index = 0;int len = strlen(password);//返回值EOFwhile ((c == fgetc(file1)) != EOF) {char item = password[index % len];fputc(c ^ item, file2);index++;}fclose(file1);fclose(file2);return 0;
}

相关文章:

C语言文件读写,文件相关操作

文章目录 C语言文件读写&#xff0c;文件相关操作1.C语言万物皆是地址&#xff0c;文件读操作2.文件的写3.文件的复制4.获取文件的大小5.文件的加密解密 C语言文件读写&#xff0c;文件相关操作 1.C语言万物皆是地址&#xff0c;文件读操作 // // Created by MagicBook on 20…...

竞赛选题 深度学习卷积神经网络的花卉识别

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基…...

CMake教程 - basic point

CMake教程 - basic point 1 - Building a Basic Project 最基本的CMake项目是由单个源代码文件构建的可执行文件。对于像这样简单的项目&#xff0c;只需要一个带有三个命令的CMakeLists.txt文件。 注意&#xff1a;尽管CMake支持大写、小写和混合大小写命令&#xff0c;但小…...

day52--动态规划11

想死&#xff0c;但感觉死的另有其人&#xff0c;&#xff0c;怎么还在动态规划&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV 第一题&#xff1a;买卖股票的最佳时机III 给定一个数组&#xff0c;它…...

Jenkins入门级安装部署

前言 Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成。通常&#xff0c;项目中常用Jenkins作为编译打包项目的工具&#xff0…...

tcpdump 异常错误

tcpdump 进行抓包的时候&#xff0c;-w 提示 Permission denied&#xff1a; sudo tcpdump -w test1.log tcpdump: test1.log: Permission denied 开始以为是用户权限的问题&#xff0c;后来换用 root 账户还是不行&#xff0c;经搜索&#xff0c;是 AppArmor 的问题。 解决方…...

如何绘制【逻辑回归】中threshold参数的学习曲线

threshold参数的意义是通过筛选掉低于threshold的参数&#xff0c;来对逻辑回归的特征进行降维。 首先导入相应的模块&#xff1a; from sklearn.linear_model import LogisticRegression as LR from sklearn.datasets import load_breast_cancer from sklearn.model_selecti…...

4.1 数据库安全性概述

思维导图&#xff1a; 前言&#xff1a; - **第一章回顾**&#xff1a;数据库特点 - 统一的数据保护功能&#xff0c;确保数据安全、可靠、正确有效。 - 数据保护主要涵盖&#xff1a; 1. **数据的安全性**&#xff08;本章焦点&#xff09; 2. 数据的完整性&#xff08;第…...

tftp服务的搭建

TFTP服务的搭建 1 先更新一下apt包 sudo apt-get update2 服务器端(虚拟机上)安装 TFTP相关软件 sudo apt-get install xinetd tftp tftpd -y3 创建TFTP共享目录 mkdir tftp_sharetftp_shaer的路径是/home/cwz/tftp_share 3.1 修改共享目录的权限 sudo chmod -R 777 tftp…...

c语言简介

C 语言最初是作为 Unix 系统的开发工具而发明的。 1969年&#xff0c;美国贝尔实验室的肯汤普森&#xff08;Ken Thompson&#xff09;与丹尼斯里奇&#xff08;Dennis Ritchie&#xff09;一起开发了 Unix 操作系统。Unix 是用汇编语言写的&#xff0c;无法移植到其他计算机&…...

OpenLayers.js 入门教程:打造互动地图的入门指南

本文简介 戴尬猴&#xff0c;我是德育处主任 本文介绍如何使用 OpenLayers.js &#xff08;后面简称 ol&#xff09;。ol 是一个开源 JavaScript 库&#xff0c;可用于在Web页面上创建交互式地图。 ol能帮助我们在浏览器轻松地使用地图功能&#xff0c;例如地图缩放、地图拖动…...

黑马头条:app端文章查看

黑马头条&#xff1a;app端文章查看 黑马头条&#xff1a;app端文章查看文章列表加载1. 需求分析2. 表结构分析3. 导入文章数据库3.1 导入数据库3.2 导入对应的实体类 4. 实现思路5. 接口定义6. 功能实现6.1&#xff1a;导入heima-leadnews-article微服务&#xff0c;资料在当天…...

常见使用总结篇(一)

Autowired和Resource注解的区别 Autowired注解是Spring提供的&#xff0c;Resource注解是J2EE本身提供Autowird注解默认通过byType方式注入(没有匹配会通过byName方式)&#xff0c;而Resource注解默认通过byName方式注入(没有匹配会通过byType方式)Autowired注解注入的对象需要…...

【软考系统架构设计师】2023年系统架构师冲刺模拟习题之《数据库系统》

在数据库章节中可能会考察以下内容&#xff1a; 文章目录 数据库完整性约束&#x1f31f;数据库模式&#x1f31f;&#x1f31f;ER模式&#x1f31f;关系代数&#x1f31f;&#x1f31f;并发控制&#x1f31f;数据仓库与数据挖掘&#x1f31f;&#x1f31f;反规范化技术&#x…...

北邮22级信通院数电:Verilog-FPGA(7)第七周实验(1):带使能端的38译码器全加器(关注我的uu们加群咯~)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 关注作者的uu们可以进群啦~ 目录 方法一&#xff…...

SIT3491ISO具有隔离功能,256 节点,全双工 RS422/RS485 芯片

SIT3491ISO 是一款电容隔离的全双工 RS-422/485 收发器&#xff0c;总线端口 ESD 保护能力 HBM 达到 15kV 以上&#xff0c;功能完全满足 EIA-422 以及 TIA/EIA-485 标准要求的 RS-422/485 收发器。 SIT3491ISO 包括一个驱动器和一个接收器&#xff0c;两者均…...

在windows服务器上部署一个单机项目以及前后端分离项目

目录 一. 单机项目在windows服务器上的部署 1.1 在本机上测试项目无误 1.1.1 在数据库中测试sql文件没问题 1.1.2 在tomcat中测试war文件无误 1.1.3 测试完成后&#xff0c;进入浏览器运行单机项目确保无误 1.2 在windows服务器中运行项目 二. 前后端分离项目在服务器上…...

使用jdbc技术,在数据库中存储大数据对象(使用字节IO流读取图片等给blob等二进制类型数据赋值)

在MySQL中&#xff0c;BLOB是一种数据类型&#xff0c;代表二进制大对象&#xff08;Binary Large Object&#xff09;&#xff0c;可以存储大量的二进制数据&#xff0c;如图像、声音、视频等。BLOB类型的数据在存储和检索时会以二进制方式进行处理&#xff0c;而不是字符方式…...

统计学习方法 支持向量机(下)

文章目录 统计学习方法 支持向量机&#xff08;下&#xff09;非线性支持向量机与和核函数核技巧正定核常用核函数非线性 SVM 序列最小最优化算法两个变量二次规划的求解方法变量的选择方法SMO 算法 统计学习方法 支持向量机&#xff08;下&#xff09; 学习李航的《统计学习方…...

【python】如何注释

一&#xff1a;通过#注释行 #这个是个注释 print(hello world) 二&#xff1a;通过或"""注释段落 这个注释段落 这是注释段落 这是注释段落print(hello world) """ 这是多行注释&#xff0c;用三个双引号 这是多行注释&#xff0c;用三个双引…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...