Título: Duda c_str() en ejemplo libro Prata Publicado por: skan en 13 Agosto 2013, 15:59 pm Hola
Estaba leyendome el libro C++ Primer Plus 6th de Prata para refrescar un poco mi C++ y tengo una duda sobre un ejemplo sobre I/O de archivos. En la página 1117 hay un ejemplo en el que entre otras cosas escriben esto: Código: string filename; En la página 1121 en otro ejemplo se usa Código: fin.open(argv[number]); ¿Por qué no se usa también el .c_str() en este caso? saludos Título: Re: Duda c_str() en ejemplo libro Prata Publicado por: avesudra en 13 Agosto 2013, 16:02 pm Hola skan en ese caso no utiliza .c_str() porque le pasa como argumento el parámetro o los parámetros que se le pasan al programa por consola.
Título: Re: Duda c_str() en ejemplo libro Prata Publicado por: skan en 13 Agosto 2013, 16:06 pm Hola
Sí, pero ese argv[numero] es como un puntero a un "string", ¿no? Título: Re: Duda c_str() en ejemplo libro Prata Publicado por: avesudra en 13 Agosto 2013, 16:11 pm A un string no, es un puntero a un char vamos lo que
Título: Re: Duda c_str() en ejemplo libro Prata Publicado por: amchacon en 13 Agosto 2013, 16:17 pm .c_str() es una funcion de la clase string para convertir los strings a cadenas char* clasicas.
El ARGV es una cadena char* clasica, lo mismo que poner el nombre entre comillas: Código
Título: Re: Duda c_str() en ejemplo libro Prata Publicado por: skan en 13 Agosto 2013, 21:51 pm Es que me extraña que de el mismo modo no se pueda escribir
Código: string filename; sin usar el c_str(), simplemente cogiendo el string como input. Título: Re: Duda c_str() en ejemplo libro Prata Publicado por: amchacon en 13 Agosto 2013, 21:55 pm Explico mejor.
Una cadena char*, no son mas que los caracteres puestos en fila. Ahí no hay problema alguno. Un string, es un contenedor/objeto para facilitar el trabajo con cadenas de caracteres. Este objeto tiene sus datos, sus funciones y sus operaciones... No es una cadena de caracteres propiamente dicha. Su funcion .c_str() obtiene del string un texto leible y entendible. Título: Re: Duda c_str() en ejemplo libro Prata Publicado por: 0xDani en 14 Agosto 2013, 18:14 pm Lo normal para funciones de la librería estándar que requieran una cadena de caracteres es que acepten un objeto de la clase string, sin embargo los constructores de las clases para I/O no lo han hecho hasta el más reciente estándar de C++, el 11.
|