comando de eco usando c ++

Quiero emitir el comando echo dentro de un archivo c++.

Todo lo que necesito hacer es

echo "xml::/var/algun.xml" >> /var/config

En el archivo C++, probé,

system("echo" + "xml::/var/some.xml" +">> /var/config");

Pero lanza operandos inválidos de tipos const char[6] y const char[46] al operador binario +.

Necesitar ayuda

preguntado el 03 de mayo de 12 a las 18:05

tus cuerdas son const char *no, std::string. operator+ on strings funciona para cadenas C++. Sin embargo, ¿por qué está utilizando el sistema para hacer esto? Podrías simplemente abrir /var/config en el código y anexarlo. -

¿Por qué no simplemente escribir en un archivo en C++? -

Parece que tienes varios problemas aquí. En primer lugar, puedo ver que te falta un espacio después de la palabra echo. ¿Por qué no hacer que funcione primero con una cadena regular para que solo resuelva un problema a la vez? ¿Y por qué no usar simplemente cout or printf o escribir en el archivo directamente? -

3 Respuestas

Supongo que este es uno en el que puede salirse con la suya con "can has 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;
}

contestado el 03 de mayo de 12 a las 19:05

Puede generar los datos usted mismo utilizando los métodos de stdio fopen/fputs/etc..

http://linux.die.net/man/3/fputs

contestado el 03 de mayo de 12 a las 19:05

Dado que está etiquetado como C++, ¿por qué recomendaría fopen, fputs, ¿etc? - ataúd de jerry

Trata

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

está pasando cadenas de caracteres sin procesar que no admiten el operador +, así que intente usar std::string en su lugar.

contestado el 03 de mayo de 12 a las 19:05

Y todavía estás tratando de aplicar operator+ a cadenas de caracteres en bruto. además escribiste mal .c_str(). - Robᵩ

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.