Здравствуйте, korzhik, Вы писали:
K>
K>int main()
K>{
K> TCHAR * path = _T("255-235-166");
K> TCHAR part1[10];
K> TCHAR part2[10];
K> TCHAR part3[10];
K> int result = _stscanf(path, _T("%[^-]-%[^-]-%[]"), part1, part2, part3);
K>}
K>
И что же, по-твоему, означает последний спецификатор формата в строке формата 'scanf' (подразумевая, что '_stscanf' принимает такие же строки формата)? Вот это — '%[]'.
Согласно спецификации языка, если за '%[' сразу следует ']', то эта ']' считается частью искомого символьного набора, а не завершающей скобкой спецификатора. Т.е. твое '%[]' — это символьный набор из одного символа ']' и без завершающей скобки вообще. Спецификатор некорректен. Поведение не определено. На практике третий аргумент читаться просто не будет.
Если у тебя это работает, то это некорректное повдение используемой тобою стандартной библиотеки.