Почему c_str не работает в этом открытом (имя файла) случае

Я думал, что понял необходимость приведения std :: string как * char при открытии файла, но я что-то упустил. Компилируется нормально но не открывается. Перепробовал несколько вариантов, но пока работает только жесткое кодирование имени в файле:

//  const char * cEMN = cCCA.get_EMNfn().c_str();
//  femn.open(cEMN);  fails
//  femn.open("file-foo.emn"); works

string stdEMN;
stdEMN = cCCA.get_EMNfn();
femn.open(stdEMN.c_str());  // fails

if(!femn)
{
cout << "Open of Original EMN file failed\n";
cout << "EMN file: " << cCCA.get_EMNfn() << endl;
cout << "Press any key to exit" << endl;
ch = getchar();
return 1;
}

-1

Решение

Факты, которые я вижу, таковы:

femn.open("file-foo.emn");

преуспевает. Но

femn.open(stdEMN.c_str());

выходит из строя.

Очевидный вывод заключается в том, что stdEMN.c_str() оценивает строку, которая отличается от "file-foo.emn",

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector