-1

ファイルを開くときに 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;
}
4

1 に答える 1

3

The facts as I discern them to be are that:

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

succeeds. But

femn.open(stdEMN.c_str());

fails.

The obvious conclusion is that stdEMN.c_str() evaluates to a string that differs from "file-foo.emn".

于 2013-11-26T15:36:18.297 に答える