簡體   English   中英

C ++ wxwidgets比較wxstrings

[英]C++ wxwidgets comparing wxstrings

我正在嘗試比較wxstrings以確定我的程序將要執行的操作。 我正在比較的字符串基於我正在讀取的文件,並且是文件中的唯一行。

我正在使用激活了wxSmith的代碼塊。

這是我嘗試開始的程序部分。

void Disc_MasterFrame::OncdiscClick(wxCommandEvent& event)
{
    system("sh detect-disc.sh");

    wxString file;
    file << wxT("detect-disc");
    wxTextFile tfile;
    tfile.Open(file);
    detectdiscw=tfile.GetFirstLine();

    //std::ifstream myfile ("detect-disc");
    //getline (myfile,detectdisc);
    //myfile.close();

    cd << wxT("An audio cd was inserted.");
    dvd << wxT("A dvd was inserted.");

    if (detectdiscw == cd){
        //musicrip->Show();
        //this->Disc_MasterFrame::ripmusic();
        void ripmusic();
    }
    else if (detectdiscw == dvd)
    {
        manipdvd->Show();
        void dvdmanip();
    }
}

void Disc_MasterFrame::ripmusic()
{
    musicrip->Show();
    system("sh disc-info.sh");
    ...

單擊該按鈕后,腳本應該運行,因為它使用cdde命令(linux / ubuntu cli程序)生成了一個文件。 該命令的結果是“已插入音頻CD”。 所以測試時我有一致性。

然后,它打開並讀取文件,並嘗試將其與兩個預定義的字符串進行比較。 一旦完成,它應該“顯示”已經創建的兩個面板之一。

我很確定我做錯了,因為單擊按鈕后它就坐在那兒。

任何幫助或指示,將不勝感激,謝謝。

在wxString中,<<將字符串附加到現有值上(類似於+會執行的操作,但如果需要,可以進行方便的類型轉換)。 我不確定這是您實際要執行的操作。 如果要為字符串分配新值,則應將<<替換為=

問題出在你的行內

void ripmusic();

void dvdmanip();

您打算調用這些函數,但是它們是函數聲明 ,而不是函數調用。 換句話說,他們什么都不做。 您的函數ripmusicdvdmanip永遠不會被調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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