【发布时间】:2021-11-06 21:33:25
【问题描述】:
我的程序是用 C 语言编写的,它基本上有一个 I/O 函数来检查为用户名和密码输入的凭据是否正确(为此我使用了一个简单的 if-else 语句)。
我必须在程序中添加一个流程图,但我似乎无法理解我将如何做到这一点。如何在流程图中将do-while 循环与getch() 函数和if-else 语句结合使用?我有一个getch() 函数来用“*”/星号屏蔽密码。
#include <stdio.h>
#include <conio.h>
int main()
{
char username[15];
char password[12];
int i=0;
printf("\nUsername: ");
scanf("%s",username);
printf("\nPassword: ");
do
{
password[i]=getch();
printf("*");
i++;
}
while(password[i-1]!='\r');
password[i-1]='\0';
if( strcmp ( username,"usernamesample" ) == 0 && strcmp ( password,"password1234" ) == 0 )
{
printf("\nVALID!");
}
else
{
puts("\nINVALID!");
return 0;
}
};
【问题讨论】:
-
什么的流程图?目前尚不清楚期望的结果是什么
-
您可能想要开始。向我们展示您的尝试并告诉我们您在哪里绊倒。请edit你的问题,不要在cmets中发布链接。
-
请选择一种语言并仅添加相关标签。 C 和 C++ 是非常不同的语言。
-
我想也许你的老师想让你画(而不是写代码(用任何语言))这样的东西? sipoc.info/wp-content/uploads/2017/01/…
-
由于您的凭据处理似乎与某些流程图无关,当您添加对流程图的尝试时,您可能会从问题中删除该部分。尽管如此,您的代码中有 2 个错误:1)
password永远无法保存正确的密码,因为它只能保存 11 个字符 + 0 个终止符。 2)您从不关心检查输入的允许长度。您应该确保名称和密码限制在缓冲区的长度内。