arduino - Arduino:如果串行输入字符串匹配,则继续,否则继续询问用户输入
问题描述
我希望能够让用户输入一个字符串并将其与另一个字符串进行比较,如果匹配,则程序可以继续,否则它会继续请求输入。我做了一个匹配字符串的基本输入。
我不确定如何处理要求持续输入的任务。
String defaultPassword = "pass1234";
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("Enter password: ");
}
void loop() {
// put your main code here, to run repeatedly:
while (Serial.available() > 0) {
String inputPassword = Serial.readStringUntil('\n');
inputPassword.trim();
if (inputPassword == defaultPassword)
{
Serial.print("Correct Input: ");
Serial.println(inputPassword);
Serial.println("Initializing...");
}
else if (inputPassword != defaultPassword)
{
Serial.print("Incorrect Input: ");
Serial.println(inputPassword);
}
}
}
解决方案
我不确定如何处理要求持续输入的任务。
void loop()
输入后,方法将不断重复,因此您将不断检查输入while (Serial.available() > 0)
- 创建一个
bool
变量并将其用作标志,将其值更改为ture
或false
基于您的密码字符串比较,您可以稍后检查该标志以决定是否要求用户提供另一个输入或继续。
bool flag = false;
if (inputPassword == defaultPassword)
{
flag = true;
Serial.print("Correct Input: ");
Serial.println(inputPassword);
Serial.println("Initializing...");
}
else
{
flag = false;
Serial.print("Incorrect Input: ");
Serial.println(inputPassword);
Serial.print("Please enter password again.");
}
if(flag)
{
//rest of your logic here if user entered the desired input
}
推荐阅读
- r - 将多个 xlsx 文件导入一个数据集的 R 代码
- rest - 使用 REST 检索共享点文档库中子文件夹中的所有文件
- javascript - animationEnd Eventlistener 触发多次
- python - 如何用 Pandas 组内的前 3 行(30 分钟间隔)的中位数替换高于阈值的值?
- javascript - next.js SSG 模式下基于光标的分页的解决方法
- java - 打印从 1 到 1000 位数的数字 - 面试问题
- html - HTML中的父元素和CSS中的父元素之间是否存在联系?
- kubernetes - 使用 kubectl apply 命令时的四种不同错误
- cordova - 我必须做什么才能运行科尔多瓦窗口应用程序?
- python - argparse - 特定选择后的可选参数