IO DAY2

 

#include<my_head.h>
//定义注册函数***************************************************
int do_register()
{
    //以追加的形式打开文件
    FILE *wfp = 0;
    char name[20];
    char pwd[20];
    printf("请输入注册账号:");
    fgets(name,sizeof(name),stdin);
    name[strlen(name)-1] = 0;
    printf("请输入注册密码:");
    fgets(pwd,sizeof(pwd),stdin);
    pwd[strlen(pwd)-1] = 0;
    //打开文件
    if((wfp = fopen("./usr.txt","a+")) == 0)
    {
        perror("fopen");
        return -1;
    }

    //将注册账号和密码写入到文件中
    fprintf(wfp,"%s %s\n",name,pwd);
    //关闭文件
    fclose(wfp);
    printf("注册成功\n");
}
//定义登录函数*****************************************************
int do_login()
{
    //定义容器,存放账号密码
    char input_name[20];
    char input_pwd[20];
    char file_name[20];
    char file_pwd[20];
    FILE *rfp = 0;
    printf("请输入登录账号:");
    fgets(input_name,sizeof(input_name),stdin);
    input_name[strlen(input_name)-1] = 0;
    printf("请输入登录密码:");
    fgets(input_pwd,sizeof(input_pwd),stdin);
    input_pwd[strlen(input_pwd)-1] = 0;
    //打开文件
    if((rfp = fopen("./usr.txt","a+")) == 0)
    {
        perror("fopen");
        return -1;
    }
    
    while(1)
    {
        int res = fscanf(rfp,"%s %s",file_name,file_pwd);
        if(res <0)
        {
            printf("登录失败\n");
            return 1;
        }
        if(strcmp(input_name,file_name) == 0 &&strcmp(input_pwd,file_pwd) == 0)
        {
            printf("登录成功\n");
            return 0;
        }
    }

}

/******************************* 主程序 **********************************/
int main(int argc, const char *argv[])
{
    char menu;
    while(1)
    {
        printf("\t\t==== 1 注册 ====\n");
        printf("\t\t==== 2 登录 ====\n");
        printf("\t\t==== 0 退出 ====\n");

        printf("请输入选项:");
        scanf("%c",&menu);
        while(getchar() != '\n');
        switch(menu)
        {
            case'1':
                {
                    do_register();
                }
                break;
            case'2':
                {
                    do_login();
                }
                break;
            case'0':
                exit(EXIT_SUCCESS);

            default:printf("输入有误,请重新输入!!!\n");
        }
    
        printf("输入任意键按回车清屏!!!\n");
        while(getchar() != '\n');
        system("clear");
    }
    
    
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VMware15安装Linux,CentOS-7x86_64

最近面试遇到很多Linux&#xff0c;咱就是实在糊弄不过去了&#xff0c;学一下吧 下载网站&#xff0c;官网&#xff1a;https://www.centos.org/download/ 第一步&#xff1a;点击x86_64 第二步&#xff1a;随便选个国内源&#xff0c;我选的清华 第三步&#xff1a;等待下…

【LeetCode每日一题】466. 统计重复个数

2024-1-2 文章目录 [466. 统计重复个数](https://leetcode.cn/problems/count-the-repetitions/)思路&#xff1a; 466. 统计重复个数 思路&#xff1a; ​ s1表示要重复的序列。n1表示要重复s1的次数。 ​ s2表示要判断的子序列。n2表示子序列s2在整个序列中重复的次数。返回…

基于微信小程序的停车预约系统设计与实现

基于微信小程序的停车预约系统设计与实现 项目概述 本项目旨在结合微信小程序、后台Spring Boot和MySQL数据库&#xff0c;打造一套高效便捷的停车预约系统。用户通过微信小程序进行注册、登录、预约停车位等操作&#xff0c;而管理员和超级管理员则可通过后台管理系统对停车…

2024 年政府和技术预测

新的一年即将来临&#xff0c;这意味着专家、技术专家和专栏作家应该尝试预测 2024 年政府和技术即将出现的一些最大趋势。今年可能使这些预测变得更加困难的是事实上&#xff0c;许多技术正在以惊人的速度向前发展。在某些情况下&#xff0c;过去需要多年才能慢慢发生的变化现…

Vue3-32-路由-重定向路由

什么是重定向 路由的重定向 &#xff1a;将匹配到的路由 【替换】 为另一个路由。 redirect : 重定向的关键字。 重定向的特点 1、重定向是路由的直接替换,路由的地址是直接改变的&#xff1b; 2、在没有子路由配置的情况下&#xff0c;重定向的路由可以省略 component 属性的配…

MySQL四大引擎建库建表账号管理

目录 一. 数据库四大引擎 1.1 引擎查看 1.2 InnoDB引擎 1.3 MyISAM引擎 1.4 MEMORY引擎 1.5 Archive引擎 二. 数据库管理 2.1 元数据库 2.2 数据库的增删改查及使用 2.3 权限相关表 三. 数据表管理 3.1 三大范式 3.2 基本数据类型 优化原则 分类 四. 数据库账号…

C++Qt6 多种排序算法的比较 数据结构课程设计 | JorbanS

一、 问题描述 在计算机科学与数学中&#xff0c;一个排序算法&#xff08;英语&#xff1a;Sorting algorithm&#xff09;是一种能将一串资料依照特定排序方式排列的算法。最常用到的排序方式是数值顺序以及字典顺序。有效的排序算法在一些算法&#xff08;例如搜索算法与合…

学习【Mysql基础篇】这一篇就够了

Mysql基础篇 1. Mysql概述1-1. 数据库相关概念1-2. Mysql数据库版本下载安装启动停止客户端连接数据模型 2. SQL2-1. SQL通用语法2-2. SQL分类2-3. DDL数据库操作表操作 - 查询创建表操作 - 修改表操作 - 删除数据类型 2-4. 图像化界面工具2-5. DML2-6. DQL2-7. DCL 3. 函数4. …

深度理解Flutter:有状态Widget与无状态Widget的详细对比

有状态Widget 什么是有状态Widget (StatefulWidget) 官方解释&#xff1a; 如果用户与 widget 交互&#xff0c;widget 会发生变化&#xff0c;那么它就是 有状态的。 有状态的 widget 自身是可动态改变的&#xff08;基于State&#xff09;。 例如用户交互而改变 Widget 的 s…

Java中的类和方法(方法重载)

目录 前言&#xff1a; 什么是面向对象&#xff1f; 什么是类&#xff1f; 类和方法的关系&#xff1a; 方法的定义&#xff1a; 方法重载&#xff1a; 类的定义&#xff1a; 修改类的名字&#xff1a; 实例化&#xff1a; 利用方法对其属性赋值&#xff1a; this…

C++多态性——(2)联编

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 成功的秘诀就在于多努力一次&#xff…

JVM篇:JVM内存结构

程序计数器 程序计数器英文名叫&#xff1a;Program Counter Register 作用&#xff1a;用来记录下一条jvm指令的地址行号。 先来查看一段jvm指令&#xff0c;这些指令对应的java代码就是输出1-5 操作系统运行该Java程序时具体流程如下 语言解释&#xff1a;源文件通过编译转…

基于机器视觉的害虫种类及计数检测研究-人工智能项目-附代码

概述 农业与民生和经济发展息息相关&#xff0c;对农业发展科学化的关注既是民生需求&#xff0c; 也是经济稳步发展的迫切需求。病虫害是影响农作物生长的重要因素&#xff0c;对农作物的产量和品质都能造成无法估计的损害。 - 针对目前广大农业产区农业植保人员稀缺、病虫害…

从零开始配置kali2023环境:配置jupyter的多内核环境

在kali2023上面尝试用anaconda3&#xff0c;anaconda2安装实现配置jupyter的多内核环境时出现各种问题&#xff0c;现在可以通过镜像方式解决 1. 搜索镜像 ┌──(holyeyes㉿kali2023)-[~] └─$ sudo docker search anaconda ┌──(holyeyes㉿kali2023)-[~] └─$ sudo …

关于this.router 和this.route的总结

this.router 和this.route这2个东西一直在用可是我还是迷迷糊糊的不知道啥啥意思&#xff0c;尤其是idea的提示功能&#xff0c;总是让我一个回车就弄错了。 总结一波&#xff1a; 概述 this.$router(路由实例) : 是VueRouter的实例.包含了很多属性和对象&#xff08;比如 h…

V8R6小版本升级步骤(单机环境)

在KingbaseES V8R6版本提供了sys_upgrade的升级工具。 sys_upgade介绍 sys_upgrade实现KingbaseES服务器实例版本升级。 sys_upgrade 允许将存储在KingbaseES数据文件中的数据升级到一个更高的KingbaseES主版本&#xff0c;而无需进行主版本升级(例如从 V8R6C4 到 V8R6C5)通常…

Django开发5-Django开发知识点快速预览

Django开发知识点快速预览 Django开发1.知识点的回顾&#xff1a;2.Ajax请求3.订单小结图表 各位小伙伴想要博客相关资料的话关注公众号&#xff1a;chuanyeTry即可领取相关资料&#xff01; Django开发 1.知识点的回顾&#xff1a; 安装Django pip install django创建Django项…

通达信佳庆离散指标公式,衡量价格波动率

佳庆离散指标&#xff08;Chaikin Volatility&#xff09;是由股票经纪人Mark Chaikin发明的&#xff0c;通过计算选定时期内最高价和最低价之间的差值来衡量价格波动率&#xff0c;将波动率量化为最高价和最低价之间范围的扩大或缩小。 在技术分析中&#xff0c;波动性具有比…

5 个顶级的免费磁盘分区软件工具评测分享

磁盘分区可能是一个脆弱而复杂的过程&#xff0c;磁盘崩溃或用户设备受到病毒攻击的风险很高。因此&#xff0c;它们很难由用户单独或手动管理。本文详细介绍了可以帮助简化磁盘分区过程的不同软件工具、它们的功能和优点。那么让我们开始吧。 什么是磁盘分区工具&#xff1f;…

常见的锁策略详细讲解(悲观锁 vs 乐观锁,轻量锁 vs 重量锁,自旋锁 vs 互斥锁,公平锁 vs 非公平锁,读写锁等)

文章目录 悲观锁和乐观锁Java中的悲观锁和乐观锁乐观锁常见的两种实现方式版本号机制CAS(compare and swap) 算法乐观锁的缺点 轻量级锁和重量级锁自旋锁 VS 互斥锁公平锁 VS 非公平锁读写锁读写锁的插队策略读写锁的升级策略 可重入锁 VS 不可重入锁 悲观锁和乐观锁 所谓悲观…