|
0 / 0 / 0
Регистрация: 24.04.2018
Сообщений: 15
|
||||||
Ошибка исполнения "string != nullprt"24.04.2018, 01:00. Показов 1605. Ответов 16
Здравствуйте, консоль выдает ошибку Debug Assertion Failed! Line: 31 Expression: string != nullprt
Суть программы - калькулятор, но нужно выявить и исключить ошибки, например на 0 делить нельзя. Вот код программы:
0
|
||||||
| 24.04.2018, 01:00 | |
|
Ответы с готовыми решениями:
16
Ошибка исполнения Ошибка во время исполнения |
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|
| 24.04.2018, 01:11 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 24.04.2018
Сообщений: 15
|
|
| 24.04.2018, 01:17 [ТС] | |
|
Само окно ошибки выдает line: 31, пытаюсь через F11 найти ошибку, но на 9 строке лезет в System. К сожалению не особо знаю, как дальше делать.
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|
| 24.04.2018, 01:21 | |
|
1
|
|
|
31 / 26 / 26
Регистрация: 04.04.2018
Сообщений: 83
|
||||||
| 24.04.2018, 01:24 | ||||||
Сообщение было отмечено Egorchan как решение
Решение
Дело в том, что ты, скорее всего, запускаешь программу без параметров входной строки. Поэтому в этой строке
Необходимо проверять количество элементов в массиве, прежде чем обращаться к какому-либо его элементу по индексу.
1
|
||||||
|
0 / 0 / 0
Регистрация: 24.04.2018
Сообщений: 15
|
|
| 24.04.2018, 01:48 [ТС] | |
|
vglv, vglv, А каким образом это можно исправить? Просто на другой версии студии (Более старой, если не ошибаюсь, либо 98, либо 14 года) программа работала. Пришел домой, попробовал - ошибка. Отчетливо помню, что свободно можно было вводить 3 параметра в консоли (Например: 1 + 1) и он выводил ответ. А здесь никак, второй час пытаюсь исправить ошибку.
0
|
|
|
31 / 26 / 26
Регистрация: 04.04.2018
Сообщений: 83
|
||||||
| 24.04.2018, 02:02 | ||||||
Сообщение было отмечено Egorchan как решение
Решение
Предлагаю примерно так:
Обращение к элементам argv[1] и argv[3] в этом коде гарантированно происходит только при существовании этих элементов. В твоем начальном коде нет оператора приема данных с консоли типа cin или scanf, поэтому не совсем понятно, как именно программа принимала с консоли данные.
0
|
||||||
|
0 / 0 / 0
Регистрация: 24.04.2018
Сообщений: 15
|
|
| 24.04.2018, 02:13 [ТС] | |
|
vglv, vglv, Спасибо Вам огромное за исправление моего кода. Правда возникла другая проблема. Компилятор стал ругаться на то, что в 4 строчке (Относительно Вашего кода) отсутствует оператор ">>", соответствующий этим операндам типы операндов: std::istream >> std::string. Что это может быть?
0
|
|
|
31 / 26 / 26
Регистрация: 04.04.2018
Сообщений: 83
|
|
| 24.04.2018, 02:24 | |
|
Оператор cin - это из старого Си, std::string - из C++. У меня cin с std::string работает, но на некоторых компиляторах может не работать.
Попробуйте заменить cin на std::cin. Добавлено через 4 минуты Хотя могу ошибаться, у вас же упоминается std::istream... Надо подумать.
0
|
|
|
0 / 0 / 0
Регистрация: 24.04.2018
Сообщений: 15
|
|
| 24.04.2018, 02:25 [ТС] | |
|
К сожалению не помогло
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|
| 24.04.2018, 02:30 | |
Сообщение было отмечено Egorchan как решение
Решение
0
|
|
|
31 / 26 / 26
Регистрация: 04.04.2018
Сообщений: 83
|
|||||||||||
| 24.04.2018, 02:33 | |||||||||||
|
Попробуйте оператор
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 24.04.2018
Сообщений: 15
|
|
| 24.04.2018, 02:42 [ТС] | |
|
nd2 Спасибо большое. Помогло
Добавлено через 3 минуты vglv Комментарий выше от пользователя nd2 помог. Программа стала работать без ошибок, но выдает сразу же cout об ошибки, не дав ввести значения. Не подскажите пожалуйста, как можно исправить это? Не особо разбираюсь в argc и argv. Знаю считай только то, что argc - argumentcout и там пишется, сколько параметров, а argv - argumentvalue - и это что-то типо структуры. И то в этом не уверен, к сожалению.
0
|
|
|
31 / 26 / 26
Регистрация: 04.04.2018
Сообщений: 83
|
|
| 24.04.2018, 02:46 | |
|
Egorchan, какое именно сообщение об ошибке выдается? Приведите код программы, как он у вас выглядит сейчас.
Также, каким образом вы запускаете программу? Запускаете прямо из среды разработки, или из командной строки? Передаете в программу какие-либо параметры командной строки, и если да, то какие?
0
|
|
|
0 / 0 / 0
Регистрация: 24.04.2018
Сообщений: 15
|
||||||
| 24.04.2018, 02:50 [ТС] | ||||||
|
vglv Вот:
0
|
||||||
|
31 / 26 / 26
Регистрация: 04.04.2018
Сообщений: 83
|
|
| 24.04.2018, 03:11 | |
|
Egorchan, что делает программа после вывода этого сообщения? Ждет ли она, пока пользователь не введет в консоль какую-либо строку?
Если можно ввести строку в консоль, то строка записывается в переменную input. Строки должны быть вида 3 * 11 7 - 2 8 / 4 43 * 11 и т. д., насколько я понял. Если строки должны быть такого вида, то непонятно тогда, кстати, почему изначальный код ожидает 4 параметра в командной строке, а не 3... Далее, со строкой input необходимо проделать следующее: 1. Разбить на три подстроки (организовать метод split для std::string, можно найти примеры в гугле) 2. Преобразовать первую подстроку в число и записать в a, преобразовать третью подстроку в число и записать в b; из второй подстроки извлечь символ операции 3. При этом, если количество подстрок, на которые разбивается input, не равно 3, либо первая или третья подстрока не являются числовыми значениями, либо длина второй подстроки не равняется 1 или она не равняется символу операции, то необходимо вывести сообщение об этом в консоль и попросить ввести строку снова (желательно организовать ввод и преобразование подстроки в цикле, пока не будет введена верная строка).
0
|
|
|
Модератор
|
||
| 24.04.2018, 10:06 | ||
istream, у которого (объекта) перегружен оператор >>.
0
|
||
| 24.04.2018, 10:06 | |
|
Помогаю со студенческими работами здесь
17
Ошибка этапа исполнения
Ошибка во время исполнения Ошибка во время исполнения
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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&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.
На борту пять. . .
|