Встретил странную проблему в коде.
При попытке распарсить строку "Имя_ТИП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 не помогает.
Я сначало грешил на компилятор на создав другой проект с этой функцией она работала нормально.Что это может быть?