C ++从'const char *'无效转换为'char'

时间:2015-09-28 21:05:00

标签: c++ arduino

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

1 个答案:

答案 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的调用。