Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   И опять SSCANF (http://forum.oszone.net/showthread.php?t=301752)

evpu 28-06-2015 09:55 2523272

И опять SSCANF
 
Всем добрый день!

Подскажите пожалуйста ресурс, по поводу вышеуказанной функции. Мне требуется понять все тонкости строки форматирования, и научиться художественно ими пользоваться)

А фактических задач 2.

1. Хочу научиться раскладывать GET-запрос на С.
Т.е я делаю accept на требуемый TCP порт, и ловлю данные в массив. Мне требуется например, при получении строки вида:

GET /core.php?account=88899911&command=check&txn_id=208750985025890

извлекать то, что после вопросительного знака, и соответственно далее раскладывать строку на переменные и их значения.
Очевидно, что это элементарно делается на РНР, но я хочу в этой задаче смигрировать с РНР на С, т.к последний работает где-то в 50 раз быстрей!

Очевидно, что никакого файла core.php фактически нет, такой вид имеет строка запроса.

2. Как я писал ранее, хотелось бы хранить настройки во внешнем текстовом файле.
Пока у меня получилось хранить значения настроек через разделитель (пробел). А хотелось бы что-то типа:
<param 1>1</param 1><param 2>2</param 2><param 3>3</param 3>...

K.A.V. 28-06-2015 10:42 2523291

Цитата:

Цитата evpu
Подскажите пожалуйста ресурс, по поводу вышеуказанной функции »

Так это...MSDN, не? sscanf, Символы поля типа scanf

Цитата:

Цитата evpu
1. Хочу научиться раскладывать GET-запрос на С. »

А как вам sscanf в этом поможет? :)

Думаю, вам нужно пройтись циклом по символам, и:
1. Если символ ? или &, то значит делаем вывод, что далее будет начало имени параметра до символа = или до конца строки
2. Если символ =, то это окончание имени параметра, далее идет значение параметра до & или до конца строки

Можете ещё почитать про функцию strtok, вдруг пригодится...

Цитата:

Цитата evpu
2. Как я писал ранее, хотелось бы хранить настройки во внешнем текстовом файле.
Пока у меня получилось хранить значения настроек через разделитель (пробел). А хотелось бы что-то типа:
<param 1>1</param 1><param 2>2</param 2><param 3>3</param 3>... »

А в чем проблема? Вы же умеете писать в файл...Так подставьте в строку при записи нужные значения...
Не совсем понятна суть проблемы

evpu 28-06-2015 11:27 2523302

По strtok понял, почитаю...
Начиная работать с SSCANF я грешным делом предположил, что можно одной строкой задать такой же форматный ввод как SPRINTFом форматный вывод... На деле же все иначе.

Да, писать в конфиг я таким образом могу. А вот с форматным считыванием пока затруднения. Исходную задачу выполнил, настройки демона находятся во внешнем файле. Теперь еще красиво и юзабельно надо сделать.


Время: 11:51.

Время: 11:51.
© OSzone.net 2001-