Здравствуйте.Обычно использовал sscanf в простых целях sscanf(string,"dd",params[0],params[1]).Но настал день,когда мне нужно от него больше.
В базе данных есть поле типа varchar.В нем будут хранится строки,отделенные запятой("aaa,bbb,c,gdgggg..."). Мне нужно это дело считать и записать в трехмерный массив.Я пробовал делать так:
И как вы могли догадаться, у меня ничего не получилось.
И да, в базе данных во второй фракции была такая запись:PHP код:
a,a,a,a,a,a,a,a,a,a
Но если в sscanf поставить массив без указания его размерности,
то будет следующее:PHP код:
sscanf(string, "p<,>a<s>["#MAX_RANGS"]",fRangsNames[i]);
Как видно, первые 3 вывел ,а также вывел ошибку о том, что мы не указали размерность строки.
Дальше ,как я не пытался что-то сделать, ничего не получалось.
Буду благодарен за помощь.Возможно плохо прочитал офф.документацию по sscanf v2.8.1
UPDATE: заменил sscanf(string, "p<,>a<s>["#MAX_RANGS"]",fRangsNames[i]);
на sscanf(string, "p<,>a<s>[250]",fRangsNames[i]); //250 - это MAX_RANGS * 24 + 9 + 1
Получилось следующее:
Но выдает warning (sscanf warning: Strings without a length are deprecated, please add a destination size.).Я считаю, что это не правильно, т.к каждый раз будет выводит этот warning,а это не есть хорошо.