c++ - 在arduino上显示输入数据的大小和整数的输入数据
问题描述
我正在编写一个程序来定义一个新的 500 个整数的 int 数组来存储输入数据,还将输入整数转换并存储到数组中,并显示输入数据的大小并显示输入数据。
我面临的问题是我无法在串行监视器上正确显示我的输入数据。例如,如果我输入 123,它将显示输入数据 = 3 个整数,我的输入数据将变为⸮。但我想要 myint[0]=123 not myint[0]=1, myint[1]=2, myint[2]=3 所以大小应该只计算 1 个整数。
我也无法显示我在串行监视器上输入的整数。我怎么能不将空间计为输入数据的大小,例如:如果我输入“123 234”,它只会显示“输入数据的大小 = 2 个整数” "
这是我输入 123 时显示的串行监视器:
请输入 输入数据的大小 = 3 个整数 ⸮ 请输入
这是我的代码:
int myint[499] ; // this is an array
char input;
int i;
void setup() {
// Initialize serial and wait for port to open:
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
}
void loop() {
while (Serial.available() > 0) {
input = Serial.read();
if (input != '\n') {
myint[i++] = input; // last character is newline
myint[i] = 0; // string array should be terminated with a zero
} else{
input = Convertinteger(input);
myint[i++] = input;
myint[i] = 0;
Serial.println("Please input");
Serial.print("Size of input data = ");
Serial.print(i-1);
Serial.print(" integers");
Serial.println("");
Serial.print(input);
Serial.println("");
Serial.println("");
Serial.println("Please input");
i = 0;
}
}
}
int Convertinteger(char x) {
if (x <= 0x39 && x >= 0x30)
return (x - 0x30);
解决方案
这一行:
Serial.print(input);
将简单地打印输入变量中的值。输入变量是一个char
包含,\n
因为这if else
是代码前面测试的内容。如果要打印数组中的所有三个值,则需要在数组中循环打印每个值。
推荐阅读
- java - JPA Criteria API:使用 IF 条件聚合多个列
- c# - 如何在 asp.net 身份中动态添加具有权限的新角色
- apache-kafka - 为什么kafka不创建主题?- 不是公认的选择
- excel-formula - 更改链接中的公式
- excel - 使用 VBA 删除每个工作表中的按钮
- javascript - 从radialBar Apexcharts 中删除多余的空间
- javascript - 在像 iframe 这样的 div 中加载整个 html
- excel - 如何在 3 个条件后对列表进行排序并删除除最后一个之外的所有重复行?
- angular - 异步角度下拉性能建议
- mysql - 我如何计算特定月份按类别更改/更新的状态