用户名登录绕过密码输入,直接进入else语句 #包括 #包括 int main(int argc,char*argv[]) { 字符用户名[12]=“管理员”; 字符密码[12]=“admin”; 系统(“颜色9f”); 系统(“cls”); 登录: printf(“--------------------------------------\n”); printf(“| |\n”); printf(“欢迎来到OMAR WATER'S”\n”); printf(“|存货|\n”); printf(“|系统|\n”); printf(“| |\n”); printf(“--------------------------------------\n\n\n”); printf(“请登录…\n\n”); printf(“用户名:”); scanf(“%c”和用户名); 如果(用户名=“管理员”){ printf(“\n密码:”); scanf(“%c”和密码); 如果(密码==“管理员”){ printf(“\n\n帮助”和用户名); }否则{ printf(“无效密码”); getchar(); 系统(“cls”); 转到登录; } }否则{ printf(“无效用户名”); getchar(); 系统(“cls”); 转到登录; } getch(); 返回0; }
控制台应用程序;c(不是c++) 我目前正在我的程序中,我想询问预设的用户名和密码。当我输入正确的用户名时,它不会询问密码,而是闪烁“输入密码”并直接跳到else语句。然后进行goto登录代码用户名登录绕过密码输入,直接进入else语句 #包括 #包括 int main(int argc,char*argv[]) { 字符用户名[12]=“管理员”; 字符密码[12]=“admin”; 系统(“颜色9f”); 系统(“cls”); 登录: printf(“--------------------------------------\n”); printf(“| |\n”); printf(“欢迎来到OMAR WATER'S”\n”); printf(“|存货|\n”); printf(“|系统|\n”); printf(“| |\n”); printf(“--------------------------------------\n\n\n”); printf(“请登录…\n\n”); printf(“用户名:”); scanf(“%c”和用户名); 如果(用户名=“管理员”){ printf(“\n密码:”); scanf(“%c”和密码); 如果(密码==“管理员”){ printf(“\n\n帮助”和用户名); }否则{ printf(“无效密码”); getchar(); 系统(“cls”); 转到登录; } }否则{ printf(“无效用户名”); getchar(); 系统(“cls”); 转到登录; } getch(); 返回0; },c,scanf,dev-c++,C,Scanf,Dev C++,控制台应用程序;c(不是c++) 我目前正在我的程序中,我想询问预设的用户名和密码。当我输入正确的用户名时,它不会询问密码,而是闪烁“输入密码”并直接跳到else语句。然后进行goto登录代码 有人能给我指出如何使这项工作成功的正确方向吗?顺便说一下,我正在使用dev-c++IDE。第1点 在代码中 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char user
有人能给我指出如何使这项工作成功的正确方向吗?顺便说一下,我正在使用dev-c++IDE。第1点 在代码中
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char username[12] = "admin";
char password[12] = "admin";
system("color 9f");
system("cls");
login:
printf(" ---------------------------------- \n");
printf(" | |\n");
printf(" | WELCOME TO OMAR WATER'S |\n");
printf(" | INVENTORY |\n");
printf(" | SYSTEM |\n");
printf(" | |\n");
printf(" ---------------------------------- \n\n\n");
printf("Please Log-In...\n\n");
printf("Username: ");
scanf("%c", &username);
if (username == "admin"){
printf("\nPassword: ");
scanf("%c", &password);
if (password == "admin"){
printf("\n\nWELCOME ", &username);
}else{
printf("INVALID PASSWORD");
getchar();
system("cls");
goto login;
}
}else {
printf("INVALID USERNAME");
getchar();
system("cls");
goto login;
}
getch();
return 0;
}
如果错误,它将只扫描一个char
到username[0]
,将所有其他输入保留到缓冲区中,在以后的调用中将自动读取
使用
扫描字符串输入
第2点
你不会像我一样演奏弦乐
您需要使用第1点 在代码中
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char username[12] = "admin";
char password[12] = "admin";
system("color 9f");
system("cls");
login:
printf(" ---------------------------------- \n");
printf(" | |\n");
printf(" | WELCOME TO OMAR WATER'S |\n");
printf(" | INVENTORY |\n");
printf(" | SYSTEM |\n");
printf(" | |\n");
printf(" ---------------------------------- \n\n\n");
printf("Please Log-In...\n\n");
printf("Username: ");
scanf("%c", &username);
if (username == "admin"){
printf("\nPassword: ");
scanf("%c", &password);
if (password == "admin"){
printf("\n\nWELCOME ", &username);
}else{
printf("INVALID PASSWORD");
getchar();
system("cls");
goto login;
}
}else {
printf("INVALID USERNAME");
getchar();
system("cls");
goto login;
}
getch();
return 0;
}
如果错误,它将只扫描一个char
到username[0]
,将所有其他输入保留到缓冲区中,在以后的调用中将自动读取
使用
扫描字符串输入
第2点
你不会像我一样演奏弦乐
你需要使用
这是一个非常常见的问题,程序员经常会用C++来比较字符串,例如“代码> > =代码/>代码,它有一个<代码>字符串类型,C中没有这样的东西,你需要一次一个字符比较字符串,当然,标准库中有一些函数可以为您高效地执行此操作,并且易于使用。这个问题有很多。您介意重新整理关闭的“@ iHAROB”吗?这是一个非常常见的问题,程序员经常使用字符串,如C++中的代码> >=<代码>,它有一个<代码>字符串类型,C中没有这样的东西,而且你需要一次一个字符比较字符串,当然,标准库中有一些函数可以为您高效地执行此操作,并且易于使用。这个问题有很多。您介意重新排序结束的@iharob先生吗?@theblackaccord(我责备缓存…)请查看更新的答案和链接。@theblackaccord(我责备缓存…)请查看更新的答案和链接。scanf("%11s", username);
username == "admin"