用c语言写出注册和登录设置密码为123456并将注册用户名复制到文件zheng.txt中
时间: 2023-09-08 12:16:47 浏览: 151
下面是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
#define PASSWORD "123456" // 定义密码
int main() {
char username[20], password[20], filename[] = "zheng.txt";
int choice;
printf("请选择操作:\n");
printf("1. 注册\n");
printf("2. 登录\n");
scanf("%d", &choice);
if (choice == 1) { // 注册
printf("请输入用户名:");
scanf("%s", username);
// 检查用户名是否已存在
FILE *fp = fopen(filename, "r");
if (fp != NULL) {
char line[100];
while (fgets(line, sizeof(line), fp) != NULL) {
char *pos = strchr(line, '\n');
if (pos != NULL) {
*pos = '\0';
}
if (strcmp(line, username) == 0) {
printf("该用户名已被注册!\n");
fclose(fp);
return 0;
}
}
fclose(fp);
}
// 写入用户名到文件
fp = fopen(filename, "a");
fprintf(fp, "%s\n", username);
fclose(fp);
// 设置密码
printf("注册成功,请设置密码:");
scanf("%s", password);
while (strcmp(password, PASSWORD) != 0) {
printf("密码不符合要求,请重新设置(必须为123456):");
scanf("%s", password);
}
printf("密码设置成功!\n");
} else if (choice == 2) { // 登录
printf("请输入用户名:");
scanf("%s", username);
// 检查用户名是否存在
FILE *fp = fopen(filename, "r");
if (fp == NULL) {
printf("该用户不存在!\n");
return 0;
}
char line[100];
int found = 0;
while (fgets(line, sizeof(line), fp) != NULL) {
char *pos = strchr(line, '\n');
if (pos != NULL) {
*pos = '\0';
}
if (strcmp(line, username) == 0) {
found = 1;
break;
}
}
fclose(fp);
if (!found) {
printf("该用户不存在!\n");
return 0;
}
// 检查密码是否正确
printf("请输入密码:");
scanf("%s", password);
if (strcmp(password, PASSWORD) != 0) {
printf("密码错误!\n");
return 0;
}
printf("登录成功!\n");
} else {
printf("无效的选择!\n");
}
return 0;
}
```
运行程序后,根据提示选择注册或登录,然后按照提示输入用户名和密码即可。如果选择注册,程序会将用户名写入到文件zheng.txt中,并要求设置密码为123456;如果选择登录,程序会从文件中读取用户名,并要求输入密码,如果密码正确则登录成功。
阅读全文