sscanf(str, "%s %s %s %d", value.nomer, value.name, value.kinokomp, &value.prodol);
однако так правильно считывет, если все задано по одному слову.
а если value.kinokomp задано несколькими словами, заключенными в скобки, то как быть?
спасибо)
sscanf(str, "%s %s %s %d", value.nomer, value.name, value.kinokomp, &value.prodol);
if(sscanf(str, "%s%20[^(](%20[^)])%d",, т.е., сначала пытаемся распарсить строку с учетом того, что value.kinokomp заключен в круглые скобки. Проверяем, сколько полей было заполнено успешно. Если не все 4 - то скобок не было, читаем, как обычно. Если 4 - то нам повезло, строка была со скобками, и была сразу корректно разобрана, второй проход делать не надо.
value.nomer, value.name, value.kinokomp, &value.prodol) != 4)
{
sscanf(str, "%s%s%s%d",
value.nomer, value.name, value.kinokomp, &value.prodol);
}
struct s, поэтому могу в каждое строковое поле читать не больше 20 символов. Если у тебя описано по другому - задавай другое значение в форматной строке...
{
char nomer[21];
char name[21];
char kinokomp[21];
int prodol;
};