c - 如何使用 getch 函数创建流程图?
问题描述
我的程序是用 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;
}
};
解决方案
流程图记录了程序中的控制流程。挑战在于处理这种图表所知道的非常基本的控制流操作。
依次进行的操作显示在用箭头链接的框中。
条件流,例如if (condition) { /*then do*/ } else { /*else do/* }
使用菱形:
没有标准化的循环符号。所以你需要使用条件来显示循环:
while (condition) { /*do something*/ }
好像:do { /*do something*/ } while (condition);
好像:最后,
getch()
是用户输入:
C 条件可以调用函数,例如getch()
在评估条件时执行用户输入。流程图不允许这样做;您需要分解流程并在条件菱形之前添加额外的符号。然后,while
循环要求您不仅在菱形之前循环,而且在这些额外符号之前循环,以便正确执行条件评估的准备工作。
推荐阅读
- react-native - 如何使本机部分列表反应到折叠部分并跨部分拖放项目?
- python - 在 python 中解释 split('e') 中的字符串“轮陡字符串”
- kubernetes - 我可以在没有任何 RBAC 的情况下运行 minikube 吗?
- typescript - 如何在 TypeScript 中为静态属性和方法调用注释类别名?
- swift3 - 如何在 iOS 应用中播放 Vimeo 私人和公共视频(swift 3)
- c# - 如何在程序集中找到接口?对于插件系统
- vue.js - 导入和使用 Echarts 导致 Internet Explorer 出现【对象错误】
- sql - SQL 仅选择与另一个表列的行匹配的列
- javascript - 如何使用反应和节点将字符串作为文件上传到谷歌驱动器
- api - 使用带有查询参数的 Trello Batch API 调用