簡體   English   中英

為什么在這種open(filename)情況下c_str不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM