2012-05-03 63 views
0

我想在C++文件中发出echo命令。使用C++的echo命令

所有我需要做的是

回声 “XML ::在/ var/some.xml” >>在/ var /配置

在C++中的文件,我试过,

系统(” echo“+”xml ::/var/some.xml“+”>>/var/config“);

但它将类型为const char [6]和const char [46]的无效操作数抛出到二元运算符+。

需要帮助

+2

你的字符串是'const char *',而不是'std :: string'。字符串上的'operator +'适用于C++字符串。但是,为什么你使用系统来做到这一点?你可以在代码中打开'/ var/config'并追加到它。 – birryree

+0

为什么不直接用C++写入文件? – Flexo

+0

看来你在这里有很多问题。首先,我可以看到你在“echo”这个词后面缺少一个空格。为什么不先用普通的字符串工作,所以你一次只能解决一个问题?为什么不直接使用'cout'或'printf'或直接写入文件? –

回答

0

我想这是一个在那里你可以逃脱“能有codez?”:

#include <iostream> 
#include <iterator> 
#include <algorithm> 

int main(int argc, char **argv) { 

    std::copy(argv+1, argv+argc, std::ostream_iterator<char *>(std::cout, "")); 
    return 0; 
} 
-2

尝试

#include <string> 
system(std::string("echo" + "xml::/var/some.xml" +">> /var/config").cstr()) 

您传递的原始字符串不支持+运算符 - 因此请尝试使用std :: string来代替。

+0

而你仍然试图将'operator +'应用于原始字符串。再加上拼错'.c_str()'。 –