Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在arduino上显示输入数据的大小和整数的输入数据_C++_Arrays_Arduino - Fatal编程技术网

C++ 在arduino上显示输入数据的大小和整数的输入数据

C++ 在arduino上显示输入数据的大小和整数的输入数据,c++,arrays,arduino,C++,Arrays,Arduino,我正在编写一个程序来定义一个新的500个整数的整数数组来存储输入数据,还将输入整数转换并存储到数组中,显示输入数据的大小,同时显示输入数据 我面临的问题是,我无法在串行监视器上正确显示输入数据。例如,如果我输入123,它将显示输入数据=3个整数,我的输入数据将变为⸮.但是我想要的是myint[0]=123,而不是myint[0]=1,myint[1]=2,myint[2]=3,所以大小应该是1个整数的计数 我也不能在串行监视器上显示我输入的整数。还有,我怎么能不将空间计算为输入数据的大小?例如:

我正在编写一个程序来定义一个新的500个整数的整数数组来存储输入数据,还将输入整数转换并存储到数组中,显示输入数据的大小,同时显示输入数据

我面临的问题是,我无法在串行监视器上正确显示输入数据。例如,如果我输入123,它将显示输入数据=3个整数,我的输入数据将变为⸮.但是我想要的是myint[0]=123,而不是myint[0]=1,myint[1]=2,myint[2]=3,所以大小应该是1个整数的计数

我也不能在串行监视器上显示我输入的整数。还有,我怎么能不将空间计算为输入数据的大小?例如:如果我输入“123 234”,它将只显示“输入数据的大小=2个整数”

这是串行监视器,在输入123时显示:

Please input Size of input data = 3 integers ⸮ Please input 请输入 输入数据的大小=3个整数 ⸮ 请输入 这是我的密码:

int-myint[499];//这是一个数组
字符输入;
int i;
无效设置(){
//初始化串行端口并等待端口打开:
序列号开始(115200);
而(!串行){
;//等待串行端口连接。仅本机USB端口需要
}
}
void循环(){
while(Serial.available()>0){
输入=Serial.read();
如果(输入!='\n'){
myint[i++]=input;//最后一个字符是换行符
myint[i]=0;//字符串数组应以零结尾
}否则{
输入=整数(输入);
myint[i++]=输入;
myint[i]=0;
Serial.println(“请输入”);
串行打印(“输入数据的大小=”);
连续打印(i-1);
串行打印(“整数”);
Serial.println(“”);
串行打印(输入);
Serial.println(“”);
Serial.println(“”);
Serial.println(“请输入”);
i=0;
}
}
}
整数(字符x){
如果(x=0x30)
返回(x-0x30);
此行:

Serial.print(input);

将只打印输入变量中的值。输入变量是一个包含
\n
char
,因为这是代码早期的
if-else
测试的内容。如果要打印数组中的所有三个值,则需要在数组中进行一个太循环来打印每个值。

重新阅读此内容我看到了其他问题。您将需要两个单独的数组。一个数组应该是字符数组(
char
)。在接收到每个字符时,它将充当每个字符的缓冲区。然后,当您接收换行符(
“\n”
)时您应该在字符缓冲区中放置一个0,而不是换行符。因此,如果您按“1”、“3”、“8”键,您将创建字符串“138”。然后这就是您对Convertinteger的输入。在进行测试时,我将同时打印输入字符串和整数输出


从Convertinteger获取输出并将其存储在第二个数组中,该数组将是一个
int
数组。您需要某种方法来指示您已完成输入数字。可能只需按enter键而不输入任何数字。因此,如果在输入换行符后,字符串的第一个字节为0(这是检测空字符串的一种方法)打破循环。然后如果你数了5个数字条目,你就可以循环打印它们5次。

我添加了这一点,但是它在串行监视器上没有显示任何内容(int a=0;a为什么不使用
Serial.parseInt()
读取数字?