我在编译代码时遇到了这个错误。 execl 用于文件 c++,它在覆盆子上的 LCD 中显示数据:
SerialPort.cpp: In function ‘int main()’:
SerialPort.cpp:121:50: error: cannot convert ‘std::__cxx11::string {aka
std::__cxx11::basic_string<char>}’ to ‘const char*’ for argument ‘2’ to ‘int
execl(const char*, const char*, ...)’
execl("/mondossier/programmeYacine", data, data);
这是我的主要内容:
main()
{
std::string cmd = "0";
while(true){
std::cout << "Entrez Commande" << std::endl;
std::cin >> cmd;
SerialPort* comSerie = new SerialPort();
comSerie->writeSerialPort(cmd);
sleep(1);
std::string data = comSerie->readSerialPort();
std::cout << data << std::endl;
execl("/mondossier/programmeYacine", data, data);
delete(comSerie);
}
}
最佳答案
问题是 execl()
需要 const char*
类型的参数,而您正在传递 std::string
。
您可以使用 std::string.c_str()
函数来获取相应的 C 字符串 表示。这是 onst char*
类型。
将行 execl("/mondossier/programmeYacine", data, data);
更改为 execl("/mondossier/programmeYacine", data.c_str(), data.c_str( ));
关于c++ - 代码问题将字符串转换为图表excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50135737/