Функция возвращает только числа :((, gsoftadmin, 26-Дек-03, 12:40 [смотреть все]Всем трям. У мну проблема. Есть функция, которая (по замыслу, по крайней мере :)) ) возвращает значение ключа из ini файла. Возвращает, ессно, как строку. Но... Глюк в следующем: если в ключе только цифры, то все ок. Если же в ключе появляються буквы, то функция возвращает черт знает что.Куда копать? Сама функция вот: 5 gchar *read_conf_value(FILE *fp, gchar *section, gchar *key) 6 { 7 char str_s[50]; 8 char str_k[100]; 9 char *p = NULL; 10 static char rez[100]; 11 size_t len_sect; 12 size_t len_key; 13 14 len_sect = strlen(section); 15 len_key = strlen(key); 16 17 rewind(fp); 18 19 while (!feof(fp)) 20 { 21 if ((fgets(str_s,50,fp)) && (!strncmp(str_s,section,len_sect))) 22 { 23 while (!feof(fp)) 24 { 25 if ((fgets(str_k,100,fp)) && (!strncmp(str_k,key,len_key))) 26 { 27 p = strtok(str_k,key); 28 strcpy(rez,p); 29 #ifdef DEBUG 30 add_log(p,"info_tag"); 31 #endif 32 return rez; 33 } 34 } 35 } 36 } 37 return rez; 38 } |
- Функция возвращает только числа :((, SergCh, 08:35 , 29-Дек-03 (1)
Может быть вообще не находит и выдаёт мусор? Мог бы для начала проинициализировать, перед поиском, rez Ну, типа, *rez = '\0';
- Функция возвращает только числа :((, gsoftadmin, 09:57 , 29-Дек-03 (2)
>Может быть вообще не находит и выдаёт мусор? >Мог бы для начала проинициализировать, перед поиском, rez >Ну, типа, *rez = '\0'; Может, я в си и чайник, но на идиота не похож. Если я написал, что числа возвращаются нормально, а строки нет, то так и есть.
- Функция возвращает только числа :((, genie, 00:09 , 30-Дек-03 (3)
Ok, etot strtok() call - chto nahoditsya v key? Esche, esli strtok vozvratit NULL, chto budet togda? >>Может быть вообще не находит и выдаёт мусор? >>Мог бы для начала проинициализировать, перед поиском, rez >>Ну, типа, *rez = '\0'; > >Может, я в си и чайник, но на идиота не похож. >Если я написал, что числа возвращаются нормально, а строки нет, то так >и есть.
- Функция возвращает только числа :((, SergCh, 09:24 , 30-Дек-03 (4)
Да не надо так нервничать, Просто ты не обрабатываешь исключительные ситуации. Вот я и предположил, что возможно дело вней (люди не боги, могут и опечататься). Ну и впринципе, правильней всё таки, пользоваться переменными проинициализировав их. PS Ну, и если тебе не нравятся мои советы, я не заставляю ими пользоваться, просто проигнорируй.
- Функция возвращает только числа :((, gsoftadmin, 10:00 , 30-Дек-03 (5)
>Да не надо так нервничать, Просто ты не обрабатываешь исключительные ситуации. >Вот я и предположил, что возможно дело вней (люди не боги, могут >и опечататься). > >Ну и впринципе, правильней всё таки, пользоваться переменными проинициализировав их. > >PS Ну, и если тебе не нравятся мои советы, я не заставляю >ими пользоваться, просто проигнорируй. Извини. Погорячился. Задачка решена. Кому интересно - http://clubpro.spb.ru/ubb/Forum14/HTML/001019.html
|