gpt4 book ai didi

c - 密码功能错误

转载 作者:行者123 更新时间:2023-11-30 15:10:07 27 4
gpt4 key购买 nike

void main()
{
Password();
}


void Password()
{
//declare local variables//
char cPassCode[] = "String";
int iFlag, iComparison = 0;

//Run the code to check the password//
while (iFlag = 1)
{
printf("Please enter the password: ");
scanf("%s", cPassCode);
iComparison = strcmp(cPassCode,"A23bc5");
if (iComparison == 0)
{
Header();
ArrayPrinter(Array);
iFlag = 0;
}
else
{
printf("Wrong password");
iFlag = 1;
}
}
}

我的程序有这个代码。整个程序运行良好,但又再次循环。我认为这与我的 while 循环有关。如果我尝试更改条件,程序根本不会运行。有什么想法吗?

最佳答案

这里有一个问题:while (iFlag = 1)您没有将iFlag与1进行比较,而是将其设置为1。一种正确的方法这是 while (iFlag == 1),但更安全的表达方式是:while (1 == iFlag),以便编译器在您执行=/= 下次出错。但最好的方法是,由于 iFlag 被用作 bool 值,因此只需执行 while (iFlag)

接下来,您需要在使用iFlag之前对其进行初始化:

int iFlag = 1, iComparison = 0;

最后,这不是初始化 cPassCode 的好方法:

char cPassCode[] = "String";

由于您不知道用户将输入多少个字符 - 请使用更大的值,例如:

#define MAXIMUM_INPUT_SIZE 1024
// ...
char cPassCode[MAXIMUM_INPUT_SIZE];

关于c - 密码功能错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36367772/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com