[C con Clase] Conctatenar carácteres

Steven Davidson srd4121 en njit.edu
Sab Ene 24 15:25:30 CET 2009


Hola Rubén,

Rubén wrote:
> 
> Gracias, Programante, algo avanzamos. Pero ahora, al hacer 
> system (conexion); 
> me da éste error al compilar:
> 
> main.cpp:26: error: no se puede convertir ‘std::string’ a ‘const
> char*’ para el argumento ‘1’ para ‘int system(const char*)’
> 
> Lo he hecho con la clase string y el namespace std. Si saco por
> pantalla con cout<<conexion<<endl; la cadena me la imprime bien.
> 
> ¿Alguna idea?
> 

El problema es que no se puede convertir implícitamente el objeto de la 
clase 'string' a una cadena de caracteres al estilo C. Ten presente que 
la función 'system()' es de ANSI C y por tanto espera un parámetro de 
tipo 'const char *'. La clase 'string' ofrece tal conversión a través de 
la función 'c_str()'. Esto sería,

system( conexion.c_str() );


Espero que esto te sirva.

Steven





Más información sobre la lista de distribución Cconclase