strncmp не работает в ObjectARX 2018
В проекте ObjectARX 2018 у нас есть файл.c, содержащий следующий код:
while(fgetws((wchar_t *)line, 80, fp) != NULL) {
if((!strncmp((const char*)line, "REQ",3)) || (!strncmp((const char*)line,
"ROL",3)) ||
(!strncmp((const char*)line, "NLS",3)) || (!strncmp((const char*)line,
"NDW",3))) {
//Inside If
}
//Outside if
}
Этот цикл while читает файл со следующими данными:
ACAD3 | 14789536 | 005 | MISC BULK CA & WIRE, CA RK, AUX FR & LTG
REQ | G3060901 | 1 |
REQ | G3060906 | 1 |
REQ | G3060907 | 1 |
REQ | G3062062 | 4 |
REQ | G3062095 | 1 |
нам нужно войти, если только если строка начинается с REQ, ROL, NLS, NDW. Но мы не в состоянии.
Это работало в ObjectARX 2014.
Кто-нибудь может сказать нам, как решить эту проблему.
1 ответ
wchar_t
скорее всего, что-то совершенно другое, чем char
и приведение указателя только заставляет компилятор замолчать. Если вы имеете дело с широкими символами, для этого есть функции, например: wcscmp()
и друзья:
wchar_t *line;
[...]
if ((!wcsncmp(line, L"REQ", 3))