C语言怎么将用户账号密码写入文件实现登录注册功能?
创建储存用户账号密码的文件:
void Create_File()
{
FILE *fp;
if ((fp = fopen("users.txt","rb"))==NULL) /*如果此文件不存在*/
{
if ((fp = fopen("users.txt","wb+"))==NULL)
{
outtextxy(, , "无法建立文件!");
}
}
}
关于文件读写:
r 只读 为输入打开一个文本文件(文件必须存在) w 只写 为输出打开一个文本文件(如没有文件,则新建) a 追加 向文本文件尾添加数据(如没有文件,则新建) rb 只读 为输入打开一个二进制文件 wb 只写 为输出打开一个二进制文件 ab 追加 向二进制文件尾添加数据 r+ 读写 为读写打开一个文本文件(文件必须已经存在) w+ 读写 为读写建立一个新的文本文件 a+ 读写 为读写打开一个文本文件(读写指针定位在最后) rb+ 读写 为读写打开一个二进制文件 wb+ 读写 为读写建立一个新的二进制文件 ab+ 读写 为读写打开一个二进制文件
创建结构体:
typedef struct The_users //typedef 可以定义结构体别名
{
];
];
}users;
该结构体用于存储用户账号密码。
注册用户(账号密码)
void registers() //按结构体的大小,一次写入或者读入1个结构体大小
{
users a,b;//结构体 The_users 重命名定义
FILE *fp;
fp = fopen("users.txt","r");
fread(&b, , fp); //读入一个结构体字符块 到b
InputBox(a.id,,"请输入账号");
)
{
if (strcmp(a.id, b.id)) /*如果两串不相等*/
{
if (!feof(fp)) /*如果未到文件尾*/
{
fread(&b, , fp);
}
else
break;
}
else
{
outtextxy(, , "此用户名已存在!");
fclose(fp);
main();
}
}
InputBox(a.pwd,,"请输入密码");
fp = fopen("users.txt","a");
fwrite(&a, , fp);
outtextxy(, , "帐号注册成功!");
fclose(fp);
main();
}
登录账号密码:
void Input_login()
{
users a,b;//定义结构体The_users别名
FILE *fp;
fp = fopen("users.txt","r");
fread(&b, , fp); //读入一个结构体字符块 写入b
InputBox(a.id,,"请输入账号");
outtextxy(,,a.id);
)
{
) //如果有此用户名
{
break;
}
else
{
if (!feof(fp)) //如果文件没有读完
{
fread(&b, , fp);
}
else
{
outtextxy(, , "此用户名不存在!");
fclose(fp);
main();
}
}
}
InputBox(a.pwd,,"请输入密码");
) /*如果密码匹配*/
{
fclose(fp);
outtextxy(, , "登录成功,欢迎使用!");
}
else
{ outtextxy(, , "密码不正确!");
main();
}
}
C语言怎么将用户账号密码写入文件实现登录注册功能?的更多相关文章
- 一个关于vue+mysql+express的全栈项目(三)------ 登录注册功能的实现(已经密码安全的设计)
本系列文章,主要是一个前端的视角来实现一些后端的功能,所以不会讲太多的前端东西,主要是分享做这个项目学到的一些东西,,,,, 好了闲话不多说,我们开始搭建后端服务,这里我们采用node的express ...
- C 语言实例 - 将字符串写入文件
C 语言实例 - 将字符串写入文件 C 语言实例 C 语言实例 将字符串写入文件. 实例 #include <stdio.h> #include <stdlib.h> /* e ...
- c文件二进制读取写入文件、c语言实现二进制(01)转化成txt格式文本、c读取文件名可变
c语言实现二进制(01)转化成txt格式文本: 下面的程序只能实现ascall对应字符转换,如果文件内出现中文字符,则会出现错误. 本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件 ...
- C语言中链表任意位置怎么插入数据?然后写入文件中?
链表插入示意图:(图是个人所画)因为链表指针指来指去,难以理解,所以辅助画图更加方便. 插入某个学号后面图: 定义的结构体: struct student { ]; //学生学号 ]; //学生姓名 ...
- C语言:把分数最低的学生数据放入数组b所指的数组中,-从键盘输入若干字符串,写入文件myfile4中,用-1作字符输入结束的标志,
//学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,fun函数:把分数最低的学生数据放入数组b所指的数组中,分数最低的学生可能不止一个.人数返回. #include <st ...
- I/O处理小练习--保存用户账号密码
I/O处理小练习--保存用户账号密码 用户输入姓名和密码,将每一个姓名和密码保存到文件中,输入done时程序结束 import java.io.*; public class Example { pu ...
- 小白日记40:kali渗透测试之Web渗透-SQL手工注入(二)-读取文件、写入文件、反弹shell
SQL手工注入 1.读取文件[load_file函数] ' union SELECT null,load_file('/etc/passwd')--+ burpsuite 2.写入文件 ' unio ...
- Tweak 中系统方法写入文件到根目录下面失败
Tweak 中系统方法写入文件到根目录下面失败 失败原因: Error Domain=NSCocoaErrorDomain Code=513 "The operation couldn’t ...
- linux批量添加10个用户并将其随机密码和用户名写入文件
需求: 批量新建10个测试用户,并且让其密码随机,把用户名和密码写入一个文件,并有创建时间和创建者 #!/usr/bin/python # -*- coding: utf-8 -*- import o ...
随机推荐
- append,appendTo和prepend #1daae2
1.append(content) ...
- 使用ADO.NET执行SQL脚本
public void ExecuteSql(SqlConnection connection, string sqlFile) { string sql = ""; using ...
- angular学习的一些小笔记(中)之表单验证
表单验证 我去,我感觉我这个人其实还是一个很傻逼的一个人,老是因为拼错了一个单词或者怎么样就浪费我很长时间,这样真的不行不行,要正确对待这个问题,好了,说正题吧,angular也有表单验证minlen ...
- HoverTree菜单0.1.3新增效果
HoverTree菜单0.1.3增加弹出菜单的动态效果,可以是动态下拉,也可以是动态淡入. 效果请看:http://keleyi.com/jq/hovertree/demo/demo.0.1.3.ht ...
- jquery图片查看插件,支持旋转、放大、缩小、拖拽、缩略图(仿qq图片查看)
最近做了一个jquery图片查看的插件,目的是能精确查看图片的详情,插件支持图片旋转.放大.缩小.拖拽.缩略图显示,界面效果是按照window的qq查看图片功能写的,当然不尽相同. 具体功能: 1. ...
- js 将json对象转成字符串
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 学习zepto.js(原型方法)[2]
接着昨天的来,继续说原型方法,昨天的传送阵(昨天出了点小意外,博文经过WP手机的UC浏览器进行编辑后标签就露出来了- -,现已修复); $.grep(): 作用与Array.filter类似(其实就是 ...
- Maltego实体分类与Transform
分类 实体类型 描述 Devices (设备类) Device 表示一个设备,如一个手机或相机. Infrastructure (基础结构类) AS 一个互联网自治系统 DNS Name 域名系统 ...
- android tools使用方式
我们希望在布局中显示测试的属性,而这个属性不会影响到正式代码,因此我们就需要tools这个命名空间. 首先定义:xmlns:tools="http://schemas.android.com ...
- -[UIViewController _loadViewFromNibNamed:bundle:]
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewC ...