-1

如何在 system() 中使用字符串。例如:(输入是字符串)

system("open -a Google Chrome" "http://www.dictionary.reference.com/browse/" + input + "?s=t");

因为当我这样做时,我得到了这个错误(没有匹配的函数调用'system')。

4

2 回答 2

0

系统cstdlib标题中可用。

函数将 c 风格的字符串作为参数。+不附加字符串文字。

所以试试——

std::string cmd("open -a Google Chrome");
cmd += " http://www.dictionary.reference.com/browse/" + input + "?s=t";

// In the above case, operator + overloaded in `std::string` is called and 
// does the necessary concatenation.

system(cmd.c_str());
于 2013-09-07T02:34:18.360 回答
-1

你有没有包括stdlib标题?

No matching function for call to 'system'通常在它无法解析具有该签名的函数时发生。

例如:

#include <stdlib.h> // Needed for system().

int main()
{
    system("some argument"); 
    return 1;
}

.c_str()并且在将 std::string 变量作为参数传递时不要忘记它。

看:

  1. system()文档。
  2. 这个答案。
于 2013-09-07T02:39:10.730 回答