【问题标题】:How to supply a string for the system() function in C++如何在 C++ 中为 system() 函数提供字符串
【发布时间】:2014-12-13 08:00:55
【问题描述】:

在几年不使用 C++ 后,我才重新开始使用它,并试图通过 system() 函数执行“xcopy”命令。

我以为只要给它一个字符串就可以了,所以我做了类似的事情:

string command = "xcopy " + source + " " + string(1,cInternalDrive) + ":\\" + workspace + " /D /E /C /R /H /I /K /Y /EXCLUDE:" +  exclude;
system(command);

命令设置后的值为 "xcopy F:\Workspace*.* D:\Workspace\ /D /E /C /R /H /I /K /Y /EXCLUDE:F:\ignore.txt " 这是我想要的值,但是 system() 不喜欢变量命令。

它说错误:没有合适的从 :std::string" 到 "const char *" 的转换函数存在。 经过一番研究,我发现系统应该采用 cstring 类型,而不仅仅是常规字符串,但经过一些测试后,我不确定如何实现它。

【问题讨论】:

    标签: c++ system xcopy


    【解决方案1】:

    这是因为 c++ 无法将 std::string 显式转换为 const char* 你需要使用 std::string::c_str() 将返回 const char* 的函数:

    system(command.c_str());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-03
      • 2014-12-31
      • 2022-11-10
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多