Я думал, что понял необходимость приведения 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;
}
Факты, которые я вижу, таковы:
femn.open("file-foo.emn");
преуспевает. Но
femn.open(stdEMN.c_str());
выходит из строя.
Очевидный вывод заключается в том, что stdEMN.c_str()
оценивает строку, которая отличается от "file-foo.emn"
,
Других решений пока нет …