void cancle_password_teacher() { char filename[] = "C:\\Users\\32172\\Desktop\\学生管理系统\\教师账号密码.txt"; char tempname[] = "C:\\Users\\32172\\Desktop\\学生管理系统\\temp.txt"; FILE *fp, *temp; char line[100]; fp = fopen(filename, "r"); temp = fopen(tempname, "w"); char id[6]; printf("请输入删除教师工号:"); scanf("%s",&id); while (fgets(line, sizeof(line), fp)) { // 如果不包含匹配字符串,则写入临时文件 if (!strstr(line, id)) { fputs(line, temp); } } fclose(fp); fclose(temp); remove(filename); // 将临时文件重命名为原文件名 rename(tempname, filename); printf("工号为%s的教师信息删除成功,请按任意键返回\n",id); }运行后文件名为temp,并没有改名并且程序有bug

时间: 2024-01-27 20:03:50 浏览: 15
根据你提供的代码,我发现在使用 `fgets` 读取文件中的一行时,可能会读取到换行符。这可能会导致在比较教师工号时出现问题。另外,使用 `scanf` 读取字符串时,不需要使用 `&`,因为字符串本身就是指针。 以下是修复后的代码: ```c void cancel_password_teacher() { char filename[] = "C:\\Users\\32172\\Desktop\\学生管理系统\\教师账号密码.txt"; char tempname[] = "C:\\Users\\32172\\Desktop\\学生管理系统\\temp.txt"; FILE *fp, *temp; char line[100]; fp = fopen(filename, "r"); temp = fopen(tempname, "w"); char id[6]; printf("请输入删除教师工号:"); scanf("%s", id); while (fgets(line, sizeof(line), fp)) { // 去掉换行符 line[strcspn(line, "\n")] = '\0'; // 如果不包含匹配字符串,则写入临时文件 if (!strstr(line, id)) { fputs(line, temp); fputs("\n", temp); } } fclose(fp); fclose(temp); remove(filename); rename(tempname, filename); printf("工号为%s的教师信息删除成功,请按任意键返回\n", id); } ``` 这里我们使用了 `strcspn` 函数来找到字符串中的换行符,并将其替换为结束符。另外,在写入临时文件时,需要手动添加换行符,以保证每行之间的正确性。

相关推荐

#**********************************设计基本框架 import tkinter as tk import tkinter.messagebox win = tk.Tk() win.title("用户登录") win.geometry("250x130") #---------功能代码开始--------- #***********************************设计功能函数 #--设计功能函数-- #设置变量 var_Name = tk.StringVar() #设置变量为StringVar变量 var_Name.set(' ') #初始和重置时的清空 var_Pwd = tk.StringVar() var_Pwd.set(' ') #按钮处理函数 def login(): name = var_Name.get() #获取用户名 pwd = var_Pwd.get() #获取密码 if name=='admin' and pwd=='python@16': tk.messagebox.showinfo(title = '用户登录',message = '成功!') else: tk.messagebox.showinfo(title = '用户登录',message = '失败!') def cancle(): var_Name.set(' ') #清空用户名 var_Pwd.set(' ') #清空密码 def _quit(): win.quit() #**********************************设置提示标签 #--登录窗口各组件设计-- #设计2个提示标签 labname = tk.Label(win,text = "账号:",width = 80) labpwd = tk.Label(win,text = "密码:",width = 80) #设计2个输入框(textvariable为文本框的值,并关联变量var_Name) entname = tk.Entry(win,width = 100,textvariable = var_Name) entpwd = tk.Entry(win,width = 100,textvariable = var_Pwd) #设计3个按钮 but_Ok = tk.Button(win,text = "登录",command = login) but_Cancel = tk.Button(win,text = "重置",command = cancel) but_Quit = tk.Button(win,text = "退出",command = quit) #**********************************设计组件布局 labname.place(x=20,y=10,width=80,height=20) labpwd.place(x=20,y=40,width=80,height=20) entname.place(x=120,y=10,width=80,height=20) entpwd.place(x=120,y=40,width=80,height=20) but_Ok.place(x=130,y=80,width=50,height=20) but_Cancel.place(x=100,y=80,width=50,height=20) but_Quit.place(x=170,y=80,width=50,height=20) #---------功能代码结束--------- win.mainloop()

转换vue3 写法 data () { return { title: '市南区', value: 9323, topData: [], filterData: [], navTop: [], // 名字行政区划 xsource: [], // 值 centerWidth: '', // 外面柱状图的 show: true, centerHeight: '' } }, computed: { defaultOption () { return { step: 0.5 // 数值越大速度滚动越快 } } }, props: { option: { type: Object, default: () => { return [] } } }, created () { this.$ref.scroll3._startMove() }, destroyed () { this.$refs.scroll3._cancle() }, watch: { option: { immediate: true, deep: true, handler: function (newValue, oldValue) { this.show = true if (!newValue.基础配置.swiper) { this.show = false } this.filterData = newValue.数据.source this.navTop = newValue.数据配置.xDimensions // name 行政区划 this.xsource = newValue.数据配置.yDimensions this.centerWidth = newValue.基础配置.centerWidth this.centerHeight = newValue.基础配置.centerHeight this.topHeight = newValue.基础配置.topHeight let maxValue = 0 this.filterData.forEach((item, index) => { if (Number(item[this.xsource[0].name]) > maxValue) { maxValue = item[this.xsource[0].name] } }) this.filterData.forEach((item, index) => { if (item[this.xsource[0].name] == maxValue) { item.width = 100 } else { item.width = item[this.xsource[0].name] / maxValue * 100 } if (newValue.基础配置.leftBackground) { item.leftBackground = newValue.基础配置.leftBackground } else { item.leftBackground = 'linear-gradient(90deg, #2F61C2 0%, #60C0E8 100%)' } }) // 最大的值 let max = [] for (var i = 0; i < this.filterData.length; i++) { for (var j = i; j < this.filterData.length; j++) { if (Number(this.filterData[i][this.xsource[0].name]) < Number(this.filterData[j][this.xsource[0].name])) { max = this.filterData[j] this.filterData[j] = this.filterData[i] this.filterData[i] = max } } } } } }

insert into amc_repair.cancle_trans_repair_sheet2022 (sheet_num) values ('GX-004-500-220322-00514','GX-004-500-220322-00501','GX-004-500-220322-00489','GX-004-500-220322-00488','GX-004-500-220322-00486','GX-004-500-220322-00485','GX-004-500-220322-00483','GX-004-500-220322-00482','GX-004-500-220322-00481','GX-004-500-220322-00480','GX-004-500-220322-00476','GX-004-500-220322-00475','GX-004-500-220322-00474','GX-004-500-220322-00367','GX-004-500-220322-00365','GX-004-500-220322-00366','GX-004-500-220322-00356','GX-004-500-220322-00346','GX-004-500-220322-00333','GX-004-500-220322-00263','GX-004-500-220322-00241','GX-004-500-220322-00240','GX-004-500-220322-00239','GX-004-500-220322-00018','GX-004-500-220308-00039','GX-004-500-220308-00032','GX-004-500-220308-00025','GX-004-500-220308-00009','GX-004-500-220308-00008','GX-004-500-220308-00003','GX-004-500-220307-00090','GX-004-500-220307-00084','GX-004-500-220307-00059','GX-004-500-220307-00052','GX-004-500-220307-00049','GX-004-500-220113-00052','GX-004-500-220113-00050','GX-004-500-220113-00051','GX-004-500-220113-00049','GX-004-500-220113-00048','GX-004-500-220113-00043','GX-004-500-220113-00042','GX-004-500-220113-00033','GX-004-500-220113-00031','GX-004-500-220112-00047','GX-004-500-220112-00043','GX-004-500-220107-00055','GX-004-500-220107-00052','GX-004-500-220107-00050','GX-004-500-220107-00049','GX-004-500-220107-00048','GX-004-500-220107-00046','GX-004-500-220107-00047','GX-004-500-220107-00045','GX-004-500-220107-00044','GX-004-500-220107-00043','GX-004-500-220107-00039','GX-004-500-220107-00037','GX-004-500-220107-00036','GX-004-500-220107-00035','GX-004-500-220107-00034','GX-004-500-220107-00033','GX-004-500-220107-00031','GX-004-500-220107-00032','GX-004-500-220107-00028','GX-004-500-220107-00027','GX-004-500-220107-00026','GX-004-500-220107-00025','GX-004-500-220107-00022','GX-004-500-220107-00020','GX-004-500-220107-00019','GX-004-500-221215-00006') 提示 Column count doesn't match value count at row 1 是什么问题

最新推荐

recommend-type

基于AT89C51单片机的三电梯联动控制系统+全部资料+详细文档(高分项目).zip

【资源说明】 基于AT89C51单片机的三电梯联动控制系统+全部资料+详细文档(高分项目).zip基于AT89C51单片机的三电梯联动控制系统+全部资料+详细文档(高分项目).zip基于AT89C51单片机的三电梯联动控制系统+全部资料+详细文档(高分项目).zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
recommend-type

梯度下降算法:介绍梯度下降算法 实例说明其运行原理

梯度下降算法,介绍梯度下降算法 实例说明其运行原理,供学习参考。
recommend-type

node-v4.8.0-linux-ppc64.tar.xz

Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
recommend-type

基于51单片机的空气检测+DS1302时钟显示+全部资料+详细文档(高分项目).zip

【资源说明】 基于51单片机的空气检测+DS1302时钟显示+全部资料+详细文档(高分项目).zip基于51单片机的空气检测+DS1302时钟显示+全部资料+详细文档(高分项目).zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
recommend-type

西北工业大学-电子实习报告.pdf

西北工业大学-电子实习报告.pdf
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。