我是Arduino和C ++的新手。我想制作一个程序,它将从串口读取输入。但是,当我尝试编译它时似乎存在一些问题。
我收到的错误消息是:
从
的无效转换const char*
到char
这是我的代码:
#define nombreBouteille 10
#define nombreCocktail 8
String cocktail[nombreCocktail][nombreBouteille][2];
String bouteille[nombreBouteille];
int serialValue;
void loop() {
if (Serial.available() > 0)
int serialValue = Serial.read();
if (serialValue == '1') {
readBouteille();
readCocktail();
}
}
//Read and set the bottles content
void readBouteille() {
for( int i = 0; i < nombreBouteille; i++) {
bouteille[i] = Serial.readStringUntil(" ");
}
}
//Read the cocktail
void readCocktail() {
for( int i = 0; i < nombreCocktail; i++) {
for ( int j = 0; j < nombreBouteille; j++) {
cocktail[i][j][0] = Serial.readStringUntil(" ");
cocktail[i][j][1] = Serial.parseInt();
}
}
}
答案 0 :(得分:4)
readStringUntil使用单个char
参数来指定分隔符,而不是C字符串(const char *
)。所以改变:
bouteille[i] = Serial.readStringUntil(" "); // wrong: " " is a `const char *`
为:
bouteille[i] = Serial.readStringUntil(' '); // right: ' ' is a `char`
,同样对另一个readStringUntil
的调用。