//页面登陆函数 void log_in() { char user[10];//账号 char pwd[10];//密码 i=3; loop:printf("请输入您的账号:"); scanf("%s",&user); printf("请输入您的密码:"); scanf("%s",&pwd); if(strcmp(user,"5223002144")==0 && strcmp(pwd,"123456")==0 && i!=0) printf("登录成功!\n"); else { i--; printf("您的账号或密码错误,请重新登陆!\n"); if(i==0) return; system("pause"); system("cls"); goto loop; } }
时间: 2024-04-27 10:23:07 浏览: 21
这段代码定义了一个名为log_in的函数,用于实现用户登录功能。该函数要求用户输入账号和密码,如果账号和密码都正确,则输出登录成功的信息。如果账号或密码错误,则提示用户重新输入,直到输入正确或者错误次数超过3次为止。
函数中定义了两个字符数组变量user和pwd,分别用于存储用户输入的账号和密码。变量i的初始值为3,表示用户最多可以输入3次账号和密码。使用了一个标记loop,通过goto语句实现了循环输入的功能。
首先,函数输出提示用户输入账号和密码的信息,然后使用scanf函数接收用户输入,并将输入的值存储到相应的字符数组变量中。
接下来,函数使用strcmp函数判断用户输入的账号和密码是否分别等于"5223002144"和"123456"。如果两个字符串都相等且用户输入次数小于3,则输出登录成功的信息。否则,变量i的值减1,输出错误信息,并通过system函数暂停程序的运行,等待用户按任意键继续。然后,使用system函数清屏,并通过goto语句回到标记loop处,重新输入账号和密码,直到输入正确或错误次数超过3次为止。
总之,这个函数的作用是实现用户登录功能,要求用户输入账号和密码,如果输入正确,则输出登录成功的信息。如果输入错误,则提示用户重新输入,直到输入正确或者错误次数超过3次为止。
相关问题
rsync -avS /home/wwlocal/wwlopsmysql/data{,.20230516.change_root_pwd.bak}
这个命令是用rsync命令将/home/wwlocal/wwlopsmysql/data目录复制到/home/wwlocal/wwlopsmysql/data.20230516.change_root_pwd.bak目录中。其中,-a表示以归档方式复制文件(包括权限、所有者等信息)、-v表示显示详细信息、-S表示对文件的“稀疏”部分进行处理,节省空间。{}表示复制源文件路径,通过{,.20230516.change_root_pwd.bak}表示同时复制到目标路径下生成一个同名的文件夹,并在文件夹名后添加后缀.20230516.change_root_pwd.bak。
帮我优化代码#include <stdio.h> #include <stdlib.h> #include <string.h> #define BLUE "\033[34m" #define CYAN "\033[36m" #define GREEN "\033[32m" #define RED "\033[31m" #define RESET "\033[0m" #define YELLOW "\033[33m" const char* logo = " ____ __\n / __ )____ _/ /_____ _\n / __ / __ `/ __/ __ `/ \n / /_/ / /_/ / /_/ /_/ / \n/_____/\\__,_/\\__/\\__,_/ \n"; const char* welcome = "欢迎使用模拟 QQ 登录界面\n"; const char* tip_user = "请输入用户名:"; const char* tip_pwd = "请输入密码:"; const char* success = "登录成功!\n"; const char* failure = "用户名或密码错误,登录失败!\n"; int main() { char username[20], password[20], buffer[256]; printf(CYAN "%s" RESET, logo); printf(BLUE "%s" RESET, welcome); printf(YELLOW "%s" RESET, tip_user); fgets(buffer, sizeof(buffer), stdin); sscanf(buffer, "%s", username); printf(YELLOW "%s" RESET, tip_pwd); fgets(buffer, sizeof(buffer), stdin); sscanf(buffer, "%s", password); if (strcmp(username, "qquser") == 0 && strcmp(password, "qqpassword") == 0) { printf(GREEN "%s" RESET, success); } else { printf(RED "%s" RESET, failure); } return 0; }
你的代码已经很简洁了,但是可以进行一些小优化:
1. 定义字符串常量时,可以使用 const char[] 来代替 const char*,这样更加安全。
2. 可以使用 fgets() 函数来获取用户输入,因为它可以避免缓冲区溢出的问题。
3. 在读取用户输入时,可以使用 sscanf() 函数来避免输入格式的错误。
4. 可以使用 strcmp() 函数来比较字符串是否相等,这样更加简洁。
下面是优化后的代码:
```c
#include <stdio.h>
#include <string.h>
#define BLUE "\033[34m"
#define CYAN "\033[36m"
#define GREEN "\033[32m"
#define RED "\033[31m"
#define RESET "\033[0m"
#define YELLOW "\033[33m"
const char logo[] =
" ____ __\n"
" / __ )____ _/ /_____ _\n"
" / __ / __ `/ __/ __ `/ \n"
" / /_/ / /_/ / /_/ /_/ / \n"
"/_____/\\__,_/\\__/\\__,_/ \n";
const char welcome[] = "欢迎使用模拟 QQ 登录界面\n";
const char tip_user[] = "请输入用户名:";
const char tip_pwd[] = "请输入密码:";
const char success[] = "登录成功!\n";
const char failure[] = "用户名或密码错误,登录失败!\n";
int main() {
char username[20], password[20], buffer[256];
printf(CYAN "%s" RESET, logo);
printf(BLUE "%s" RESET, welcome);
printf(YELLOW "%s" RESET, tip_user);
fgets(buffer, sizeof(buffer), stdin);
sscanf(buffer, "%s", username);
printf(YELLOW "%s" RESET, tip_pwd);
fgets(buffer, sizeof(buffer), stdin);
sscanf(buffer, "%s", password);
if (strcmp(username, "qquser") == 0 && strcmp(password, "qqpassword") == 0) {
printf(GREEN "%s" RESET, success);
} else {
printf(RED "%s" RESET, failure);
}
return 0;
}
```
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)