0

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 が挿入されました」です。そのため、テスト時に一貫性があります。

次に、ファイルを開いて読み取り、事前定義された 2 つの文字列と比較しようとします。それが完了すると、すでに作成された 2 つのパネルのうちの 1 つが「表示」されます。

ボタンをクリックした後、そこに座っているだけなので、何か間違っていると確信しています。

どんな助けや指示も大歓迎です、ありがとう。

4

2 に答える 2

0

wxString では、<< は既存の値に文字列を追加します (+ が行うことと同様ですが、必要に応じて便利な型変換を行います)。これがあなたが実際にやりたいことかどうかはわかりません。文字列に新しい値を割り当てたい場合は、<< を = に置き換える必要があります。

于 2015-04-10T00:26:56.510 に答える