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

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

10.07.2017, 12:45. Показов 1308. Ответов 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
12925 / 6793 / 1819
Регистрация: 18.10.2014
Сообщений: 17,190
10.07.2017, 18:34
Цитата Сообщение от рандомнейм Посмотреть сообщение
Что сделано неправильно?
Что вы хотели сказать форматом %[] в scanf? Что он должен читать?
0
1 / 1 / 0
Регистрация: 17.03.2017
Сообщений: 64
11.07.2017, 07:42  [ТС]
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Что вы хотели сказать форматом %[] в scanf? Что он должен читать?
Строку, насколько я знаю.(Все символы. Например, пробелы.)
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12925 / 6793 / 1819
Регистрация: 18.10.2014
Сообщений: 17,190
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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru