拷贝文件的一些操作

利用fputc 、fgetc实现文件的拷贝

int main(int argc, const char *argv[])
{FILE* rfp=fopen(argv[1],"r");FILE* wfp=fopen(argv[2],"w");if(rfp==NULL || wfp==NULL){perror("fopen");return 1;}while(1){char res=fgetc(rfp);if(feof(rfp)==1){break;}fputc(res,wfp);}fclose(rfp);fclose(wfp);return 0;
}

 

将链表中数据拷贝到文件中,再将文件内容拷贝入链表

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct Data
{char name[32];int age;int score;
}data_t;typedef struct Student
{union studata{struct Student* tail;//在头节点里面,用来存放尾节点指针data_t val;}data;struct Student* next;
}stu_t;// 创建头节点
stu_t* create_head()
{stu_t* head = (stu_t*)malloc(sizeof(stu_t));memset(head,0,sizeof(stu_t));head->data.tail = head;// 只有头节点的时候,尾节点就是头节点本身head->next = NULL;return head;
}// 创建普通节点
stu_t* create_node()
{stu_t* newnode = (stu_t*)malloc(sizeof(stu_t));memset(newnode,0,sizeof(stu_t));return newnode;
}// 向链表中添加一个新的节点
void insert_node(stu_t* head,data_t data)
{stu_t* newnode = create_node();newnode->data.val = data;head->data.tail->next = newnode;head->data.tail = newnode;newnode->next = NULL;
}void show(stu_t* head)
{stu_t* p = head->next;printf("学生信息如下:\n");while(p != NULL){printf("姓名:%s 年龄:%d 成绩:%d\n",p->data.val.name,p->data.val.age,p->data.val.score);p = p->next;}printf("------------------\n");
}void save_stu(stu_t* head)
{FILE* fp = fopen("./1.c","w");if(fp == NULL){return;}stu_t* p = head->next;while(p != NULL){fprintf(fp,"%s %d %d\n",p->data.val.name,p->data.val.age,p->data.val.score);p = p->next;}fclose(fp);
}void load_stu(stu_t* head)
{FILE* fp = fopen("./1.c","r");if(fp == NULL){return ;}while(1){// 准备一个临时的学生数据域,用来保存从文件中读取到的信息data_t data = {0};int res = fscanf(fp,"%s %d %d\n",data.name,&data.age,&data.score);if(feof(fp)==1){break;}insert_node(head,data);}fclose(fp);
}int main(int argc, const char *argv[])
{stu_t* head = create_head();load_stu(head);int num=0;while(1){printf("1:添加学生\n");printf("2:查看学生信息\n");printf("3:保存学生信息\n");printf("请选择:");scanf("%d",&num);printf("------------------\n");getchar();switch(num){case 1:{data_t data;printf("请输入学生姓名、年龄、成绩:");scanf("%s %d %d",data.name,&data.age,&data.score);printf("------------------\n");insert_node(head,data);break;}case 2:show(head);break;case 3:save_stu(head);break;default:break;}}return 0;
}

结果如下: 

 

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

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

相关文章

PointCloudLib LocalMaximum_DeleteMaxPoint C++版本

测试效果 简介 在点云库&#xff08;Point Cloud Library&#xff0c;PCL&#xff09;中&#xff0c;处理点云数据时&#xff0c;经常需要去除局部最大点&#xff08;Local Maximum&#xff09;&#xff0c;这通常用于去除噪声、提取特定形状的特征或者简化点云数据。局部最大…

[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-14 SPI MASET发送程序设计

软件版本&#xff1a;Anlogic -TD5.9.1-DR1_ES1.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用安路(Anlogic)FPGA 实验平台&#xff1a;米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 ht…

数据库管理-第220期 Oracle的高可用-03(20240715)

数据库管理220期 2024-07-15 数据库管理-第220期 Oracle的高可用-03&#xff08;20240715&#xff09;1 AC/TAC2 配置Service3 用户权限4 端口开放总结 数据库管理-第220期 Oracle的高可用-03&#xff08;20240715&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文…

51单片机10(蜂鸣器介绍)

一、蜂鸣器介绍&#xff1a; 1、蜂鸣器是一种一体化结构的电子讯响器&#xff0c;采用直流电压供电&#xff0c;广泛应用于电子产品中作为发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器。 &#xff08;1&#xff09;压电式蜂鸣器&#xff0c;它主要由多谐的一个增胀器…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(八)-通过无人机进行无线接入

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

电脑出现错误——找不到msvcp140.dll无法继续执行代码,有效解决错误dll文件

msvcp140.dll是一个属于 Microsoft Visual C Redistributable for Visual Studio 2015 的 DLL 文件。这个文件是许多Windows应用程序&#xff08;尤其是使用 C 开发的程序&#xff09;所必需的&#xff0c;因为它包含了标准 C 库的函数实现&#xff0c;用于处理数学运算、数据转…

使用shell脚本打印99乘法表

一、简介 前一段时间在旧电脑上安装 antiX 23.1 操作系统&#xff0c;遇到一些问题需要使用shell脚本解决问题&#xff0c;所以专门学习了几天&#xff0c;打印99乘法表是其中的一个练习作业。 二、学习Linux可行的几种方式 虚拟机安装Linux进行学习直接双系统安装在实体电脑…

Ubuntu新系统的使用

1.安装显卡驱动 直接到软件与更新里面&#xff0c;就是一个A字图标的那个软件打开&#xff0c;到附加驱动里选择。要选择“server driver”的&#xff0c;选择后确认即可。 然后输入&#xff1a;nvidia-sim查看 别的方法太复杂&#xff0c;这个方法我亲测了两台电脑&#xff…

MWA(Modern Web App)初学那些事-2-Basic HTML CSS

初学MWA(Modern Web App&#xff09;那些事-2-Basic HTML & CSS 目录 初学MWA(Modern Web App&#xff09;那些事-2-Basic HTML & CSS前言一、本节学习目标二、HTML基础内容2.1关键元素2.4 Scripts 三、CSS 基础内容3.1 级联样式表-用于设置网页样式和布局3.2 CSS规则语…

springcloud使用微服务的搭建

微服务的搭建 1.配置对应信息 Springboot 、springcloud、springcloud alibaba对应关系 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 2.pom.xml的配置 2.1 总项目pom.xml引入依赖 <parent><groupId>org.sprin…

阿里通义音频生成大模型 FunAudioLLM 开源

简介 近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术的进步极大地改变了人类与机器的互动方式&#xff0c;特别是在语音处理领域。阿里巴巴通义实验室最近开源了一个名为FunAudioLLM的语音大模型项目&#xff0c;旨在促进人类与大型语言模型&#xff08;LLMs&…

跳妹儿学编程之ScratchJr(9):程序控制积木篇—短跑比赛

跳妹儿学编程之ScratchJr(7)&#xff1a;动作积木篇—爸爸去散步 跳妹儿学编程之ScratchJr(8)&#xff1a;外观积木篇—捉迷藏 跳妹儿学编程之ScratchJr(9)&#xff1a;程序控制积木篇—短跑比赛 引言 在之前的一篇文章中&#xff0c;我们了解了ScratchJr的动作积木和外观积…

阿里云ECS服务器安装jdk并运行jar包,访问成功详解

安装 OpenJDK 8 使用 yum 包管理器安装 OpenJDK 8 sudo yum install -y java-1.8.0-openjdk-devel 验证安装 安装完成后&#xff0c;验证 JDK 是否安装成功&#xff1a; java -version设置 JAVA_HOME 环境变量&#xff1a; 为了确保系统中的其他应用程序可以找到 JDK&…

星火智能体创建指南,星火大模型智能体创建教程

一、什么是星火助手 星火助手是基于讯飞星火认知大模型&#xff0c;面向用户使用场景&#xff0c;打造的高效生产力工具。通过设置结构化的指令模板&#xff0c;用户即可完成助手功能设定&#xff0c;每个助手在对话的模式下能够快速满足场景需求。同时支持助手模板、数据集、…

单链表算法 - 链表的中间节点

. - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/middle-of-the-linked-list/description/ 思路1: 思路2: 代码: /*** …

【接口自动化_06课_Pytest+Excel+Allure完整框架集成】

一、logging在接口自动化里的应用 1、设置日志的配置&#xff0c;并收集日志文件 日志的设置需要在pytest.ini文件里设置。这个里面尽量不要有中文 2、debug日志的打印 pytest.ini文件的开关一定得是true才能在控制台打印日志 import allure import pytest from P06_PytestFr…

CUDA cuDNN和pytorch(GPU版)的完整安装教程

​ * 说明: 本教程使用wsl-ubuntu20.04, 其他发行版linux的命令可能有所区别. *实测机型: i5-13500HX | RTX 4060 Laptop 一、下载CUDA12.X版本 这里以下载CUDA12.2为例。 前往cuda-12.2下载页, 按照如图方式选择合适的选项&#xff1a; 按照官方给出的命令&#xff0c; 在b…

Trie树的应用

Trie树的应用 题目解题思路代码 题目 维护一个字符串集合&#xff0c;支持两种操作&#xff1a; I x 向集合中插入一个字符串 x x x&#xff1b;Q x 询问一个字符串在集合中出现了多少次。 共有 N N N 个操作&#xff0c;所有输入的字符串总长度不超过 1 0 5 10^5 105&am…

移动应用性能关注分析哪些指标

移动应用常见性能指标 要对应用开展性能测试&#xff0c;首先需要了解需要重点关注哪些指标&#xff1f;指标的参考范围大致是多少&#xff1f;可采用哪些工具收集这些指标&#xff1f;如何收集&#xff1f;如果指标有异常&#xff0c;大致有哪些high level的优化思路。这篇博客…

YoloV8改进策略:卷积篇|Kan行天下之GRAM,KAN遇见Gram多项式V2版本

GRAM(GRAM可能是一个新提出的模型或方法的缩写,这里我们根据上下文进行解释)受到诸如TorchKAN和ChebyKAN等Kolmogorov-Arnold网络(KAN)替代方案的启发。GRAM引入了一种简化的KAN模型,但同时利用了Gram多项式变换的简单性。它与其他替代方案的不同之处在于其独特的离散性特…