¿Por qué debería usar c_str () en las funciones [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Por qué las clases std :: fstream no toman una cadena std ::? 10 respuestas

Estoy leyendo el libro C ++ Primer y en el capítulo de salida de entrada de archivo utiliza:

ifstream infile(ifile.c_str());

para abrir un archivo cuyo nombre está en la cadenaifile.

Probé el código y funciona perfectamente incluso sinc_str(). Entonces, ¿cuál es el punto de usarlo?

¿Debo usarc_str() cuando intento abrir un archivo desde un argumento de línea de comando? Quiero decir cuál es el uso correcto:

ifstream fin( argv[1] )

ifstream fin( argv[1].c_str() )

Respuestas a la pregunta(3)

Su respuesta a la pregunta