Реализовано ли форматирование подстроки swscanf ([az]) для стандартной библиотеки osx? - PullRequest
0 голосов
/ 30 сентября 2011

Следующий код работает на windows, но не на osx.

В документах по swscanf сказано, что:

"... некоторые реализации wscanf () используют" AZ "для представления диапазона символов от 'A' до 'Z'. "

В некоторых реализациях это означает, что osx не реализует это?

int main(int argc, const char* argv[])
{
    {
        wchar_t foo[] = L"bif3.zip";
        wchar_t buh[10] = L"";
        int val = 0;
        wchar_t ext[4] = L"";

        int s = swscanf(foo, L"%[a-z]%d.%ls", buh, &val, ext);
        wprintf(L"wchar: %ls %d %ls\n", buh, val, ext);
    }

    {
        char foo[] = "bif3.zip";
        char buh[10] = "";
        int val = 0;
        char ext[4] = "";

        int s = sscanf(foo, "%[a-z]%d.%s", buh, &val, ext);
        printf("char: %s %d %s\n", buh, val, ext);
    }
}

результат:

wchar:  0
char: bif 3 zip

1 Ответ

0 голосов
/ 30 сентября 2011

Справочная страница для swscanf (3) сообщает следующее в разделе ошибок:

В дополнение к ошибкам, описанным в scanf (3), wscanf () не поддерживает нотацию «A-Z» для указания диапазонов символов с преобразованием класса символов ((% [’).

Не стесняйтесь подать отчет об ошибке в Apple .

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