我认为我理解在打开文件时必须将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;
}
答案 0 :(得分:3)
我发现它们的事实是:
femn.open("file-foo.emn");
成功。但
femn.open(stdEMN.c_str());
失败。
明显的结论是stdEMN.c_str()
评估的字符串与"file-foo.emn"
不同。