Re[4]: Оцените функцию разбивки строки
От: korzhik Россия  
Дата: 19.03.05 10:44
Оценка:
Здравствуйте, Андрей Тарасевич, Вы писали:

Т>И что же, по-твоему, означает последний спецификатор формата в строке формата 'scanf' (подразумевая, что '_stscanf' принимает такие же строки формата)? Вот это — '%[]'.


Я думал что %[] обозначает — читать всё, включая пробелы в переменную

АТ>Согласно спецификации языка, если за '%[' сразу следует ']', то эта ']' считается частью искомого символьного набора, а не завершающей скобкой спецификатора. Т.е. твое '%[]' — это символьный набор из одного символа ']' и без завершающей скобки вообще. Спецификатор некорректен. Поведение не определено. На практике третий аргумент читаться просто не будет.


Сейчас глянул в стандарт, вы как всегда правы. Я ошибся.

>Если у тебя это работает, то это некорректное повдение используемой тобою стандартной библиотеки.

Согласен

Тогда так:
int result = _stscanf(path, _T("%[^-]-%[^-]-%s"), part1, part2, part3);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.