[英]Why is c_str not working in this open(filename) case
我以為我知道在打開文件時必須將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"
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.