c++ - 如何将变量作为参数放入 system()

标签 c++ bash c++11 gcc-pedantic

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

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

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

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

我该如何解决?

最佳答案

system 函数接受一个const char* 指针作为它的参数。但是,隐式std::string 对象到 const char*(表示其包含的字符串数据)由标准库。相反,您可以调用 c_str() member function在那个对象上,像这样:

system(c.c_str());

关于c++ - 如何将变量作为参数放入 system(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66603683/

相关文章:

c++ - 字符串化 - 它是如何工作的?

c++ - OpenGL 对象不转换为旋转轴

linux - 获取许多相似字符串中的第一个

Linux 连接实用程序提示输入文件未排序

c++ - 静态库中是否只有一个 c++11 单例实例

c++ - 在 Cpp 头文件中声明的常量变量应该有多少个符号条目?

c++ - std::hash_set 中定义的 stdext::hash_value() 的性能

c++ - 我从 Wireshark 获得了 C 数组形式的数据,现在我在以正常形式解码它时遇到了麻烦

c++ - 单例类的析构函数被调用了两次!

linux - grep -isn "String\.format"-R 之间有什么区别。和 grep -isn String\.format -R .?