编译代码时出现此错误。 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/

10-12 02:14