【C语言】 使用fgets和fputs完成两个文件的拷贝
目录
1、使用fgets和fputs完成两个文件的拷贝
2、使用fgets统计给定文件的行号
- fgets和fputs的使用方法
- 函数原型:int fputs(const char *s,FILE *stream);
char *fgets(char *s,int size,FILE *stream); - fupts的功能:将给定的字符串写入到文件中
返回值:成功返回写入的字符个数,失败返回EOF
- fgets的功能:将stream所指向的文件中,最多读取size-1个字符到s中,在读取过程中,如果遇到回车或者文件会结束,会结束本次读取,并且把回车也放入到容器中。在后面自动加上'\0'。
返回值:成功返回容器的起始地址,失败返回NULL
遇到的问题:在从终端进行输入的时候,./a/out text.txt dest.txt,会把text.txt给到argv[1],dest.txt会给到argv[2];在写本次代码的时候:
在执行text = fopen(argv[1],"r"); dest = fopen(argv[2],"w+")这两个语句的时候,给argv[1]和argc[2]的外面加上了双引号" ",导致程序无法顺利执行。
1、使用fgets和fputs完成两个文件的拷贝
#include <myhead.h>int main(int argc, const char *argv[])
{FILE *text = NULL,*dest = NULL;//判断是否合法输入if(argc != 3){printf("error\n");printf("you should input:./a.out file1 file2\n"); //该如何输入才合法return -1;}//打开文件,从终端输入两个文件text = fopen(argv[1],"r"); //以只读的形式打开dest = fopen(argv[2],"w+"); //以可读可写的形式打开//判断是否成功打开if(text == NULL || dest == NULL){perror("fopen error");return -1;}//成功打开,执行拷贝逻辑char buf[30] = {""}; //定义一个容器,用来接受读取的值while((fgets(buf,sizeof(buf),text)) != NULL){fputs(buf,dest);}fclose(text);fclose(dest);return 0;
}
输出结果如下:

2、使用fgets统计给定文件的行号
#include <myhead.h>int main(int argc, const char *argv[])
{FILE *fp = NULL;//判断终端输入文件格式是否正确if(argc != 2){printf("error");printf("you should input:./a.out file1\n");return -1;}//判断文件是否成功打开if((fp = fopen(argv[1],"r")) == NULL){perror("fopen error");return -1;}//定义一个容器和一个计数器char line[1024] = "";int len = 0;//成功打开后,执行统计行号逻辑while((fgets(line,sizeof(line),fp)) != NULL){len++;}//关闭文件fclose(fp);printf("该文件有%d行\n",len);return 0;
}
输出结果如下:

相关文章:
【C语言】 使用fgets和fputs完成两个文件的拷贝
目录 1、使用fgets和fputs完成两个文件的拷贝 2、使用fgets统计给定文件的行号 fgets和fputs的使用方法函数原型:int fputs(const char *s,FILE *stream); char *fgets(char *s,int size,FILE *stream);fupts…...
使用PyTorch导出JIT模型:C++ API与libtorch实战
PyTorch导出JIT模型并用C API libtorch调用 本文将介绍如何将一个 PyTorch 模型导出为 JIT 模型并用 PyTorch 的 CAPI libtorch运行这个模型。 Step1:导出模型 首先我们进行第一步,用 Python API 来导出模型,由于本文的重点是在后面的部署…...
Python——异常捕获,传递及其抛出操作
01. 异常的概念 1. 程序在运行时,如果 python解释器遇到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常。 2. 程序停止执行并且提示错误信息这个动作,我们通常称之为:抛出(raise…...
【Maven】 的继承机制
Maven是一个强大的项目管理工具,主要用于Java项目的构建和管理。它以其项目对象模型(POM)为基础,允许开发者定义项目的依赖、构建过程和插件。Maven的继承机制是其核心特性之一,它允许子项目继承和复用父项目的配置&am…...
微信小程序结合后端php发送模版消息
前端: <view class"container"><button bindtap"requestSubscribeMessage">订阅消息</button> </view> // index.js Page({data: {tmplIds: [UTgCUfsjHVESf5FjOzls0I9i_FVS1N620G2VQCg1LZ0] // 使用你的模板ID},requ…...
sqlalchemy报错sqlalchemy.orm.exc.DetachedInstanceError
解决方案: 在初始化数据库的代码中,将 maker sessionmaker(bindeng)修改为 maker sessionmaker(bindeng, expire_on_commitFalse)为什么要添加 expire_on_commitFalse 参数? expire_on_commit 可以用来更改 SQLAlchemy 的对象刷新机制&…...
华为网络模拟器eNSP安装部署教程
eNSP是图形化网络仿真平台,该平台通过对真实网络设备的仿真模拟,帮助广大ICT从业者和客户快速熟悉华为数通系列产品,了解并掌握相关产品的操作和配置、提升对企业ICT网络的规划、建设、运维能力,从而帮助企业构建更高效࿰…...
【React】详解样式控制:从基础到进阶应用的全面指南
文章目录 一、内联样式1. 什么是内联样式?2. 内联样式的定义3. 基本示例4. 动态内联样式 二、CSS模块1. 什么是CSS模块?2. CSS模块的定义3. 基本示例4. 动态应用样式 三、CSS-in-JS1. 什么是CSS-in-JS?2. styled-components的定义3. 基本示例…...
【ROS2】高级:安全-理解安全密钥库
目标:探索位于 ROS 2 安全密钥库中的文件。 教程级别:高级 时间:15 分钟 内容 背景安全工件位置 公钥材料 私钥材料域治理政策 安全飞地 参加测验! 背景 在继续之前,请确保您已完成设置安全教程。 sros2 包可以用来创…...
C语言 ——— 数组指针的定义 数组指针的使用
目录 前言 数组指针的定义 数组指针的使用 前言 之前有编写过关于 指针数组 的相关知识 C语言 ——— 指针数组 & 指针数组模拟二维整型数组-CSDN博客 指针数组 顾名思义就是 存放指针的数组 那什么是数组指针呢? 数组指针的定义 何为数组指针…...
opencascade AIS_ManipulatorOwner AIS_MediaPlayer源码学习
前言 AIS_ManipulatorOwner是OpenCascade中的一个类,主要用于操纵对象的交互控制。AIS_ManipulatorOwner结合AIS_Manipulator类,允许用户通过可视化工具(如旋转、平移、缩放等)来操纵几何对象。 以下是AIS_ManipulatorOwner的基…...
如何防止用户通过打印功能复制页面文字
简单防白嫖,要让打印出来的页面是空白,通常的做法是在打印时隐藏页面上的所有内容。这可以通过CSS的媒体查询(Media Queries)来实现,特别是针对media print的查询。 在JavaScript中,你通常不会直接控制打印…...
Python3网络爬虫开发实战(3)网页数据的解析提取
文章目录 一、XPath1. 选取节点2. 查找某个特定的节点或者包含某个指定的值的节点3. XPath 运算符4. 节点轴5. 利用 lxml 使用 XPath 二、CSS三、Beautiful Soup1. 信息提取2. 嵌套选择3. 关联选择4. 方法选择器5. css 选择器 四、PyQuery1. 初始化2. css 选择器3. 信息提取4. …...
基于 HTML+ECharts 实现监控平台数据可视化大屏(含源码)
构建监控平台数据可视化大屏:基于 HTML 和 ECharts 的实现 监控平台的数据可视化对于实时掌握系统状态、快速响应问题至关重要。通过直观的数据展示,运维团队可以迅速发现异常,优化资源配置。本文将详细介绍如何利用 HTML 和 ECharts 实现一个…...
立创梁山派--移植开源的SFUD和FATFS实现SPI-FLASH文件系统
本文主要是在sfud的基础上进行fatfs文件系统的移植,并不对sfud的移植再进行过多的讲解了哦,所以如果想了解sfud的移植过程,请参考我的另外一篇文章:传送门 正文开始咯 首先我们需要先准备资料准备好,这里对于fatfs的…...
MySQL之视图和索引实战
1.新建数据库 mysql> create database myudb5_indexstu; Query OK, 1 row affected (0.01 sec) mysql> use myudb5_indexstu; Database changed 2.新建表 1.学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在…...
快速参考:用C# Selenium实现浏览器窗口缩放的步骤
背景介绍 在现代网络环境中,浏览器自动化已成为数据抓取和测试的重要工具。Selenium作为一个强大的浏览器自动化工具,能够与多种编程语言结合使用,其中C#是非常受欢迎的选择之一。在实际应用中,我们常常需要调整浏览器窗口的缩放…...
MyBatis 插件机制、分页插件如何实现的
MyBatis 插件机制允许开发者在 SQL 执行的各个阶段(如预处理、执行、结果处理等)中插入自定义逻辑,从而实现对 MyBatis 行为的扩展和增强。以下是 MyBatis 插件运行原理的详细介绍: 插件接口 MyBatis 插件通过实现 org.apache.i…...
CentOS6.0安装telnet-server启用telnet服务
CentOS6.0安装telnet-server启用telnet服务 一步到位 fp"/etc/yum.repos.d" ; cp -a ${fp} ${fp}.$(date %0y%0m%0d%0H%0M%0S).bkup echo [base] nameCentOS-$releasever - Base baseurlhttp://mirrors.163.com/centos-vault/6.0/os/$basearch/http://mirrors.a…...
H5+CSS+JS工作性价比计算器
工作性价比=平均日新x综合环境系数/35 x(工作时长+通勤时长—0.5 x摸鱼时长) x学历系数 如果代码中的公式不对,请指正 效果图 源代码 <!DOCTYPE html> <html> <head> <style> .calculator { width: 300px; padd…...
Steam创意工坊下载终极指南:WorkshopDL让你轻松获取海量模组
Steam创意工坊下载终极指南:WorkshopDL让你轻松获取海量模组 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 还在为无法访问Steam创意工坊而烦恼吗?Work…...
SmolVLA效果展示:三视角图像对齐误差对最终动作精度影响分析
SmolVLA效果展示:三视角图像对齐误差对最终动作精度影响分析 1. 项目概述 SmolVLA是一个专门为经济实惠的机器人技术设计的紧凑高效视觉-语言-动作模型。这个模型最大的特点是能够在有限的硬件资源下实现高质量的机器人控制,让更多开发者和研究者能够接…...
水墨江南模型软件测试实践:生成结果的稳定性与一致性验证
水墨江南模型软件测试实践:生成结果的稳定性与一致性验证 最近在项目里用上了水墨江南这个AI绘画模型,效果确实惊艳,那种烟雨朦胧、小桥流水的意境拿捏得很准。但问题也来了,当我们想把它集成到产品里,给用户稳定提供…...
从FGSM到DeepFool:六大对抗攻击算法实战解析与代码实现
1. 对抗攻击入门:为什么你的AI模型会被"骗"? 想象一下,你训练了一个能准确识别五种花卉的CNN模型,测试集准确率高达95%。但某天有人拿着张明显是玫瑰的图片,你的模型却坚定地认为是郁金香——这就是对抗攻击…...
UniHacker终极指南:免费解锁Unity全平台专业功能的完整方案
UniHacker终极指南:免费解锁Unity全平台专业功能的完整方案 【免费下载链接】UniHacker 为Windows、MacOS、Linux和Docker修补所有版本的Unity3D和UnityHub 项目地址: https://gitcode.com/GitHub_Trending/un/UniHacker 作为一名Unity开发者,你是…...
Qwen-Image-Edit-2509镜像部署实战:跟着图文教程,10分钟跑通AI修图
Qwen-Image-Edit-2509镜像部署实战:跟着图文教程,10分钟跑通AI修图 1. 快速了解Qwen-Image-Edit-2509 Qwen-Image-Edit-2509是阿里巴巴通义千问团队推出的最新AI图像编辑工具。这个模型最大的特点是能够理解自然语言指令,对图片进行智能修改…...
FedProto:跨异构客户端的原型联邦学习实践指南
1. 从零理解FedProto的核心思想 第一次听说FedProto时,我正被一个医疗影像分析项目搞得焦头烂额。五家医院的数据就像五个方言区——同样的病症在CT影像上呈现的特征分布天差地别。传统联邦学习就像让这些医院用各自的方言写报告,再强行翻译成标准语&…...
为什么你的Monte Carlo期权定价结果总偏差>8%?:揭秘随机数种子、路径步长与方差缩减的3重陷阱
第一章:Monte Carlo期权定价偏差的典型现象与问题界定Monte Carlo方法在欧式、亚式及路径依赖型期权定价中广泛应用,但其数值结果常表现出系统性偏差——并非源于算法逻辑错误,而是由随机采样、方差结构与边界处理等多重因素耦合所致。实践中…...
次元画室快速部署教程:手把手解决网络权限与配置问题
次元画室快速部署教程:手把手解决网络权限与配置问题 1. 环境准备与快速部署 1.1 系统要求检查 在开始部署次元画室前,请确保您的系统满足以下最低要求: 操作系统:Ubuntu 20.04/22.04 LTS 或 CentOS 8/9(推荐使用Ub…...
如何通过Superalgos教育模块快速掌握算法交易:新手入门完整指南
如何通过Superalgos教育模块快速掌握算法交易:新手入门完整指南 【免费下载链接】Superalgos Superalgos/Superalgos: 是一个开源的分布式社交网络分析和数据挖掘平台。适合对大数据分析、机器学习、区块链以及分布式系统有兴趣的开发者。 项目地址: https://gitc…...
