0

在 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

请求|G3060901|1|

请求|G3060906|1|

请求|G3060907|1|

请求|G3062062|4|

请求|G3062095|1|

只有当行以 REQ、ROL、NLS、NDW 开头时,我们才需要输入。但是我们做不到。

这在 ObjectARX 2014 中有效。

谁能告诉我们如何解决这个问题。

4

1 回答 1

1

wchar_t很可能完全不同char的东西,并且强制转换指针只会使编译器静音。如果您正在处理宽字符,则有一些功能,例如wcscmp()和朋友:

 wchar_t *line;
 [...]
 if ((!wcsncmp(line, L"REQ", 3))
于 2017-10-04T07:08:10.133 回答