ЕСЛИ-то не работает должным образом - PullRequest
1 голос
/ 13 января 2011

Это правильный путь? Я пробовал много способов, кажется, что не работает должным образом

CString result;
result  = ExecuteExternalProgram(L"c.txt", L"t.txt");   // return a CString

if (result == _T("one"))
    MessageBox(NULL,result.GetBuffer(), L"one", MB_OK);
else
        MessageBox(NULL,result.GetBuffer(), L"two", MB_OK);

Ответы [ 3 ]

1 голос
/ 13 января 2011

C строк нельзя сравнивать с == - == сравнивает, совпадает ли указатель результата с указателем на переведенную строку Они не будут равны. Если вы собираетесь использовать строки C, вам следует использовать функции сравнения строк C:

if (0 == strcmp(result, _T("one")) /* ... */ else /* ... */
0 голосов
/ 13 января 2011

Похоже, вы используете CString MFC с перегруженным оператором '=', поэтому условия if частично удовлетворительные. Однако вам нужно изменить код следующим образом:

CString result;
result  = ExecuteExternalProgram(L"c.txt", L"t.txt");   // return a CString

if (result == CString("one"))
    MessageBox(NULL,result.GetBuffer(), L"one", MB_OK);
else
    MessageBox(NULL,result.GetBuffer(), L"two", MB_OK);
0 голосов
/ 13 января 2011

Почему бы вам не использовать strcmp и проверить, работает ли он нормально?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...