C++从'const char*'到'char'的无效转换
C++ invalid conversion from 'const char*' to 'char'
我是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
的另一个调用也类似。
相关文章:
- 将 const 转换为 const char* 无效,我该如何解决?使用 gcc7 时失败
- 类型"int"和"const char [15]"到二进制"运算符<<"的无效操作数^
- 错误:从'void*'到'const uint8_t* {aka const unsigned char*}'的转换无效 [-允许]
- 错误:从 'char' 到 'const char' [-允许] strcat(加密,密钥[i])的转换无效;
- C++ - 从 "int" 到 "unsigned char" 的缩小转换无效
- 错误:AES 加密密钥:从"char*"到"无符号字符"的转换无效
- 无法确定为什么函数调用中从 char* 到 char 的无效转换
- 我收到一个错误无效的操作数,类型为 const char [42] 和二进制"运算符+"的双倍数
- 在 sprintf 中从 'signed char*' 到 'char*' 的转换无效
- 在这个简单函数中从'char'到'const char*'的无效转换
- 'const char [26]' 和 'LPSTR ' 类型的无效操作数
- C++从 'const char*' 到 'char*' Arduino Uno 的无效转换
- 如何修复C++中的"错误:从'int'到'const char*'[-fallowive]的无效转换?
- 将文本文件读取为 const char* 有时有效,有时无效
- C++:"错误:类型'const char*'和'const char [28]'的操作数无效到二进制'ope
- C++错误:从"char"到"const char*"的转换无效[-允许]
- 从'const char**'到'char* const*'的转换无效
- 从 'char' 到 'char*' strcat 函数的转换无效
- 使用表达式初始化char*无效
- 简单的 int 到字符串转换..int to const char* 无效