C++从'const char*'到'char'的无效转换

C++ invalid conversion from 'const char*' to 'char'

本文关键字:char 无效 转换 const C++      更新时间:2023-10-16

我是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();
    }
  }
}

readStringUntil接受单个char参数来指定分隔符,而不是C字符串(const char *)。所以改变:

bouteille[i] = Serial.readStringUntil(" "); // wrong: " " is a `const char *`

:

bouteille[i] = Serial.readStringUntil(' '); // right: ' ' is a `char`

,对readStringUntil的另一个调用也类似。