用户名登录绕过密码输入,直接进入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; }

用户名登录绕过密码输入,直接进入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

控制台应用程序;c(不是c++)

我目前正在我的程序中,我想询问预设的用户名和密码。当我输入正确的用户名时,它不会询问密码,而是闪烁“输入密码”并直接跳到else语句。然后进行goto登录代码


有人能给我指出如何使这项工作成功的正确方向吗?顺便说一下,我正在使用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"