2

我正在尝试sleep 1在我的 .cpp 文件中包含 bash 中的命令
虽然system("sleep 1")工作正常,但我想更改1const int字符串

const string t = "1";
string c = "sleep " + t;
system(c);

但是,似乎system(c)被视为对函数的调用,因为发生以下错误:

error: no matching function for call to 'system'
  system(c);

我该如何解决这个问题?

4

2 回答 2

4

system函数将const char*指针作为其参数。但是,标准库没有提供从对象到 a (表示其包含的字符串数据)的隐式转换。相反,您可以调用该对象的成员函数,如下所示:std::stringconst char*c_str()

system(c.c_str());
于 2021-03-12T16:37:54.017 回答
3

system(c.c_str())或者,等效地(来自 C++11),system(c.data())

于 2021-03-12T16:35:44.880 回答