Форум программистов, компьютерный форум CyberForum.ru

Неверная работа sscanf - C++

Восстановить пароль Регистрация
 
iwsyhgia
1 / 1 / 0
Регистрация: 11.01.2014
Сообщений: 51
07.03.2014, 00:42     Неверная работа sscanf #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void mul(long long a[], int y, int p, char *input) {
    memset(a, 0, sizeof(int)*11112);
    char temp[10];
    int i = strlen(input), j = 0, k;
    while (i != 0) {
        //memset(temp, 0, sizeof(char)*10);
        k = i - 9 < 0 ? i : 9;
        i = i - 9 < 0 ? 0 : i - 9;
        sscanf(input + i, "%*s", k, temp); //а вот так работает sscanf(input + i, "%5s", temp);
        a[j++] = atoi(temp);
    }
    for (int i = 0; i < j; ++i)
        printf("%d ", a + i);
}
Проблема в том, что sscanf не хочет считывать заданной количество символов используя "*"? Почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2014, 00:42     Неверная работа sscanf
Посмотрите здесь:

C++ Непонятное поведение sscanf(.., "%lf", ..)
Работа sscanf C++
sscanf заборохлил C++
C++ Как заставить sscanf работать с динамическими массивами?
Не работает sscanf C++
Работа функции sscanf C++
C++ Sscanf не реагирует на ввод
C++ Существуют ли аналоги функции sscanf на c++?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6376 / 4842 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
07.03.2014, 01:04     Неверная работа sscanf #2
вот что нашел на просторах интернета
Звездочка (*поиск символа процента) отключает назначение следующего поля ввода, интерпретируется как поле указанного типа. Просматриваться но не сохраняется поле.
http://msdn.microsoft.com/ru-ru/library/kwwtf9ch.aspx
Возвращаемая величина равна количеству полей, значения которых действительно были присвоены переменным. В это количество не входят поля, пропущенные из-за использования модификатора команды *
http://www.c-cpp.ru/content/sscanf
*
- знак отключения, или "подавитель" (supressor). Последующее преобразование работает как обычно, но указатель уже не используется. Результат преобразования не учитывается.
http://www.opennet.ru/man.shtml?topi...ry=3&russian=0
Цитата Сообщение от iwsyhgia Посмотреть сообщение
long long a[]
Цитата Сообщение от iwsyhgia Посмотреть сообщение
memset(a, 0, sizeof(int)*11112);
ты уверен что всю память заполняешь?
может лучше
C++
1
memset(a, 0, sizeof(long long)*11112);
Yandex
Объявления
07.03.2014, 01:04     Неверная работа sscanf
Ответ Создать тему
Опции темы

Текущее время: 11:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru