我正在尝试在 C 中进行简单的用户和密码验证。有人告诉我在获取输入时永远不要使用gets(),而应该使用fgets()。但我不确定 fgets() 是如何工作的,或者为什么给我这个输入。这是代码。
#include <stdio.h>
#include <string.h>
int login(char *user, char *passwd){
int enter = 0;
char p[6];
char u[6];
printf("User: ");
fgets(u, sizeof u, stdin);
printf("Pass: ");
fgets(p, sizeof p, stdin);
printf("%s\n", p);
if (strcmp(user, u) == 0 && strcmp(passwd, p) == 0){
enter = 1;
}
return entrar;
}
int main(){
char user[] = "admin";
char passwd[] = "12345";
if (login(user, passwd)){
puts("--ACCESS GRANTED--");
}
else{
puts("--Wrong pass or user--");
}
return 0;
}
输出
用户:管理员
经过:
--错误的通行证或用户--
按回车后,它甚至不允许我输入密码。