C++ 获取成员的错误请求';长度';在';rw#u ssid';,属于非类类型';字符*';
我有一个公共函数save,它接受文件配置.cpp中的C++ 获取成员的错误请求';长度';在';rw#u ssid';,属于非类类型';字符*';,c++,arrays,function,char,arduino-c++,C++,Arrays,Function,Char,Arduino C++,我有一个公共函数save,它接受文件配置.cpp中的rw_ssid和rw_pswdchar类型变量 namespace Eeprom { void configuration::initialize(){ EEPROM.begin(512); } void configuration::save(char* rw_ssid, char* rw_pswd) { for (int i = 0; i < 128; ++i) { EEPROM.write(i, 0)
rw_ssid
和rw_pswd
char
类型变量
namespace Eeprom
{
void configuration::initialize(){
EEPROM.begin(512);
}
void configuration::save(char* rw_ssid, char* rw_pswd) {
for (int i = 0; i < 128; ++i) {
EEPROM.write(i, 0);
delay(10);
}
for (int i = 0; i < rw_ssid.length(); ++i) {
EEPROM.write(i, rw_ssid[i]);
}
for (int i = 0; i < rw_pswd.length(); ++i) {
EEPROM.write(32 + i, rw_pswd[i]);
}
EEPROM.commit();
Serial.println("Written to EEPROM!");
Serial.print("SSID: ");
Serial.println(rw_ssid);
Serial.print("PASS: ");
Serial.println(rw_pswd);
Funcs::connection::connectWifi(rw_ssid, rw_pswd);
Serial.print("IP connection: ");
Serial.println(WiFi.localIP());
}
void configuration::save(char* rw_ssid, char* rw_pswd) {
for (int i = 0; i < 128; ++i) {
EEPROM.write(i, 0);
delay(10);
}
for (int i = 0; i < rw_ssid.length(); ++i) {
EEPROM.write(i, rw_ssid[i]);
}
for (int i = 0; i < rw_pswd.length(); ++i) {
EEPROM.write(32 + i, rw_pswd[i]);
}
EEPROM.commit();
Serial.println("Written to EEPROM!");
Serial.print("SSID: ");
Serial.println(rw_ssid);
Serial.print("PASS: ");
Serial.println(rw_pswd);
Funcs::connection::connectWifi(rw_ssid, rw_pswd);
Serial.print("IP connection: ");
Serial.println(WiFi.localIP());
}
}
编译时,我遇到以下错误:
sketch/configuration.cpp: In static member function 'static void Eeprom::configuration::save(char*, char*)':
configuration.cpp:19: error: request for member 'length' in 'rw_ssid', which is of non-class type 'char*'
for (int i = 0; i < rw_ssid.length(); ++i) {
^
configuration.cpp:22: error: request for member 'length' in 'rw_pswd', which is of non-class type 'char*'
for (int i = 0; i < rw_pswd.length(); ++i) {
^
configuration.cpp:34: error: 'WiFi' was not declared in this scope
Serial.println(WiFi.localIP());
^
sketch/configuration.cpp: In static member function 'static char* Eeprom::configuration::read()':
configuration.cpp:41: error: expected identifier before numeric constant
char* read_ssid_pswd = [2];
^
sketch/configuration.cpp: In lambda function:
configuration.cpp:41: error: expected '{' before ';' token
char* read_ssid_pswd = [2];
^
sketch/configuration.cpp: In static member function 'static char* Eeprom::configuration::read()':
configuration.cpp:41: error: cannot convert 'Eeprom::configuration::read()::__lambda0' to 'char*' in initialization
configuration.cpp:55: error: invalid conversion from 'char*' to 'char' [-fpermissive]
read_ssid_pswd[0] = rw_ssid;
^
configuration.cpp:56: error: invalid conversion from 'char*' to 'char' [-fpermissive]
read_ssid_pswd[1] = rw_pswd;
^
exit status 1
request for member 'length' in 'rw_ssid', which is of non-class type 'char*'
sketch/configuration.cpp:在静态成员函数“static void Eeprom::configuration::save(char*,char*)”中:
configuration.cpp:19:错误:请求'rw_ssid'中的成员'length',该成员为非类类型'char*'
对于(int i=0;i
我是cpp的新手,在实践中学习。char*没有长度方法。要么需要
strlen(rw_ssid
),要么应该使用std::string
sketch/configuration.cpp: In static member function 'static void Eeprom::configuration::save(char*, char*)':
configuration.cpp:19: error: request for member 'length' in 'rw_ssid', which is of non-class type 'char*'
for (int i = 0; i < rw_ssid.length(); ++i) {
^
configuration.cpp:22: error: request for member 'length' in 'rw_pswd', which is of non-class type 'char*'
for (int i = 0; i < rw_pswd.length(); ++i) {
^
configuration.cpp:34: error: 'WiFi' was not declared in this scope
Serial.println(WiFi.localIP());
^
sketch/configuration.cpp: In static member function 'static char* Eeprom::configuration::read()':
configuration.cpp:41: error: expected identifier before numeric constant
char* read_ssid_pswd = [2];
^
sketch/configuration.cpp: In lambda function:
configuration.cpp:41: error: expected '{' before ';' token
char* read_ssid_pswd = [2];
^
sketch/configuration.cpp: In static member function 'static char* Eeprom::configuration::read()':
configuration.cpp:41: error: cannot convert 'Eeprom::configuration::read()::__lambda0' to 'char*' in initialization
configuration.cpp:55: error: invalid conversion from 'char*' to 'char' [-fpermissive]
read_ssid_pswd[0] = rw_ssid;
^
configuration.cpp:56: error: invalid conversion from 'char*' to 'char' [-fpermissive]
read_ssid_pswd[1] = rw_pswd;
^
exit status 1
request for member 'length' in 'rw_ssid', which is of non-class type 'char*'