Встретил странную проблему в коде.
При попытке распарсить строку "Имя_ТИП01" при помощи кода
void print_ID_LEN( char * ID)
{
    int num;
    char data[50];
    int len;
    char filename[255] = { 0 };
    len = strlen(ID);
    {
        int val = sscanf(ID, "%[^0-9]%02d", data, &num);
        if ( val== 2)
        {
            printf(file, "\"%s\",\n", data);
        }
        else
        {
            printf(file, "\"%s\", \n", ID);
        }
        fclose(file);
    }
}
Обнаружил что val=1,а в  data находится всего 2 распарсеных буквы "Им" .
В ходе дальнейших изысканий выяснил что sscanf с атрибутами "%s" так же вызывает обрезание строки "Имя_ТИП01" до "Им"
то есть фактически sscanf останавливает парсинг на символе 'я' (0xFF ) .Установка локалей через setlocale не помогает.
Я сначало грешил на компилятор на создав другой проект с  этой функцией она работала нормально.Что это может быть?