Почему я должен использовать c_str () в функциях [duplicate]

На этот вопрос уже есть ответ:

Почему классы std :: fstream не принимают std :: string? 10 ответов

Я читаю книгу C ++ Primer и в главе, посвященной вводу файлов, она использует:

ifstream infile(ifile.c_str());

открыть файл с именем в строкеifile.

Я попробовал код, и он отлично работает даже безc_str(). Так какой смысл его использовать?

Должен ли я использоватьc_str() когда я пытаюсь открыть файл из аргумента командной строки? Я имею в виду правильное использование:

ifstream fin( argv[1] )

ил

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

Ответы на вопрос(3)

Ваш ответ на вопрос