Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2012, 14:15   #1
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию sscanf

Приветствую!
Помогите разобраться почему не работает
Код:
#include <string.h>
#include <stdio.h>

struct bindv {
	int f_int;
	int s_int;
    char* chr[100];
} bindv;

int p_bind(const void *r)
{
    sscanf(r, "sm_text:%d:%99[^:]%d[^:]", &bindv.f_int, bindv.chr, &bindv.s_int);
    return 0;
}

int main()
{
	p_bind("sm_text:1:char:2:blabla");
	printf("First int: %d\nSecond int: %d\nChar: %s\n", bindv.f_int, bindv.s_int, bindv.chr);
	
return 0;
}
программа выводит
Код:
First int: 1
Second int: 0
Char: char
а мне надо получить
Код:
First int: 1
Second int: 2
Char: char
Заранее спасибо.
frommars вне форума Ответить с цитированием
Старый 12.10.2012, 11:48   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Код:
#include <string.h>
#include <stdio.h>

struct bindv {
	int f_int;
	int s_int;
    char* chr[100];
} bindv;

int p_bind(char *r)
{
    sscanf(r, "sm_text:%d:%4s:%d", &bindv.f_int, bindv.chr, &bindv.s_int);
    return 0;
}

int main()
{
	p_bind("sm_text:1:char:2:blabla");
	printf("First int: %d\nSecond int: %d\nChar: %s\n", bindv.f_int, bindv.s_int, bindv.chr);

return 0;
}
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 14.10.2012, 09:55   #3
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию

Цитата:
Сообщение от alexcoder Посмотреть сообщение
Код:
#include <string.h>
#include <stdio.h>

struct bindv {
	int f_int;
	int s_int;
    char* chr[100];
} bindv;

int p_bind(char *r)
{
    sscanf(r, "sm_text:%d:%4s:%d", &bindv.f_int, bindv.chr, &bindv.s_int);
    return 0;
}

int main()
{
	p_bind("sm_text:1:char:2:blabla");
	printf("First int: %d\nSecond int: %d\nChar: %s\n", bindv.f_int, bindv.s_int, bindv.chr);

return 0;
}
а если не 4ре символа будет?
frommars вне форума Ответить с цитированием
Старый 14.10.2012, 21:30   #4
Nuklon
Форумчанин
 
Аватар для Nuklon
 
Регистрация: 05.04.2012
Сообщений: 134
По умолчанию

"sm_text:%d:%99[^:]%*c%d[^:]"
Nuklon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что такое sscanf VintProg Общие вопросы C/C++ 19 05.07.2011 13:26
sscanf (ЕГЭ) DenisS0 Общие вопросы C/C++ 2 27.05.2010 01:45
Sscanf Lag Общие вопросы C/C++ 2 10.05.2010 14:47
sscanf() неправильно работает BioS Общие вопросы C/C++ 7 06.02.2010 22:36
sscanf DmT Общие вопросы C/C++ 4 12.06.2008 18:15