Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 17.03.2017
Сообщений: 64

Код с использованием функции Sscanf - Что сделано неправильно?

10.07.2017, 12:45. Показов 1333. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Что сделано неправильно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <cstring>
 
using namespace std;
 
int main(){
    char *buff2 = new char[20];
    int num;
    sscanf_s("Test=100", "%[]=%d", buff2, &num);
    cout << buff2 << " = "<< num << endl;
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.07.2017, 12:45
Ответы с готовыми решениями:

Проверить, что требование о выкупе было сделано с использованием конкретной газеты
Требование о выкупе было склеено из вырезанных из газеты отдельных слов. Как проверить, что требование о выкупе (представленное в виде...

Как переработать программу с использованием sscanf и sprintf
Как переработать программу с использованием sscanf и sprintf Просто не знаю для чего их используют,и не понимаю как переработать ...

Работа функции sscanf
Есть у меня функция, написанная ниже. Она работает, но возникает вопрос: как функция sscanf умудряется записать в интовую переменную всю...

5
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
10.07.2017, 12:48
Цитата Сообщение от рандомнейм Посмотреть сообщение
Доброго времени суток. Что сделано неправильно?
Для начала в _s версию надо передавать не просто buff2, а "buff2,20".
1
1 / 1 / 0
Регистрация: 17.03.2017
Сообщений: 64
10.07.2017, 15:51  [ТС]
Цитата Сообщение от Renji Посмотреть сообщение
Для начала в _s версию надо передавать не просто buff2, а "buff2,20".
Чё-т всё равно не робит.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12938 / 6805 / 1821
Регистрация: 18.10.2014
Сообщений: 17,227
10.07.2017, 18:34
Цитата Сообщение от рандомнейм Посмотреть сообщение
Что сделано неправильно?
Что вы хотели сказать форматом %[] в scanf? Что он должен читать?
0
1 / 1 / 0
Регистрация: 17.03.2017
Сообщений: 64
11.07.2017, 07:42  [ТС]
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Что вы хотели сказать форматом %[] в scanf? Что он должен читать?
Строку, насколько я знаю.(Все символы. Например, пробелы.)
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12938 / 6805 / 1821
Регистрация: 18.10.2014
Сообщений: 17,227
11.07.2017, 08:28
Лучший ответ Сообщение было отмечено рандомнейм как решение

Решение

Цитата Сообщение от рандомнейм Посмотреть сообщение
Строку, насколько я знаю.(Все символы. Например, пробелы.)
Что такое "все символы"? Вообще все символы? Так а где же тогда чтение должно прекратиться??? Это что ли бесконечное чтение до конца входного потока?

Спецификатор %[...] означает "читать все символы, указанные в [...]". У вас как будто вообще никаких символов в [...] не указано. То есть это скорее выглядит как "вообще ничего не читать".

Однако на самом деле, если ] идет сразу вплотную за [, то ] не считается закрывающей скобкой спецификатора, а считается одним из символов, указанных между [...]. Таким образом ваше "%[]=%d" означает: читать строку из символов ]=%d... и тут вдруг формат обрывается, без закрывающей ]. Это какая-то белиберда.

Сначала разберитесь , что же вам надо читать и где же вам надо останавливаться. Пока вы с этим не разберетесь, писать scanf-ы рановато.

---

Судя по той строке, которую вы указали в качестве входа вам нужно что-то вроде "%[^=]=%d". А также надо не забыть сделать исправление, упомянутое Renji, раз уж вы зачем-то взялись пользоваться scanf_s.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.07.2017, 08:28
Помогаю со студенческими работами здесь

Существуют ли аналоги функции sscanf на c++?
Доброго времени суток, при использовании sscanf столкнулся с проблемой: стандартная библиотека слишком велика. Может быть кто-то...

Как с помощью функции sscanf форматировать строку?
Здравствуйте, подскажите пожалуйста как с помощью функции sscanf форматировать строку: OK,00079000000e9426,0007900020000001 в две...

Что не так сделано ?
Ребят не могу понять что не так. Программа компилируется и выводит HELLO. А мне нужно что бы : H E L L O В общем нужна не...

Как написать код с использованием функции?
Вот у меня есть код как его засунуть в функции??? static void Main(string args) { Console.WriteLine(&quot; 1...

Переделать код с использованием функции (процедуры)
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;complex&gt; int main() { std::cout &lt;&lt; std::fixed; std::complex&lt;double&gt;...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru