|
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
|
||||||
Использование текстовой/длинной переменной для switch19.09.2013, 11:22. Показов 3734. Ответов 18
Метки нет (Все метки)
добрый день!
Такой вот вопрос: есть цикл switch-case, но нужно, чтобы пользователь вводил команды, например: hepl и exit. Как мне сделать, чтобы case проверял именно слова? *если использовать enum, то как осуществить ввод слова?
опечатку со свитчем исправила, там была другая переменная.
0
|
||||||
| 19.09.2013, 11:22 | |
|
Ответы с готовыми решениями:
18
Ошибка «использование локальной переменной которой не присвоено значениe» внутри switch Switch . Как присвоить переменной значение из Switch в default |
|
217 / 216 / 114
Регистрация: 14.01.2013
Сообщений: 459
|
|
| 19.09.2013, 11:29 | |
|
Command должен иметь целочисленный тип: http://msdn.microsoft.com/ru-r... 5wee3.aspx
Где-нибудь раньше присваивай Command значение, например если ввёл пользователь help, то присваиваешь 1 command, если exit то 2 и далее в switch описываешь, что нужно делать при command =1 и 2.
0
|
|
|
9 / 8 / 2
Регистрация: 02.05.2012
Сообщений: 92
|
|
| 19.09.2013, 11:29 | |
|
используй string в качестве переменной command и проверяй как сделал
0
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|||||||
| 19.09.2013, 12:08 | |||||||
0
|
|||||||
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|||||||||||
| 19.09.2013, 12:35 | |||||||||||
|
Nullik, enum и string можно связать через мапу
1
|
|||||||||||
|
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
|
||||||
| 20.09.2013, 08:18 [ТС] | ||||||
|
I.M., попробую ваш метод сейчас разобрать (нагуглить примеров)
![]() Пример es_ неплохой, но хотелось бы как-то выпендриться что-ли и сделать типа "ключевые слов", т.е., именно слов, а не символов. Вариант Nerock работает в С11, или как эта версия называется -- на хабре видела, НО у меня вижуалка это точно не делает, пример был там, проверила, нифига. Так что, этот вариант не катит. А идея SatanaXIII не совсем подходит, потому что в комменте программы я написала (может быть там далеко уехало, но всё же): а если будут ещё с "слова" с того же символа, как быть тогда? Воооооот, хотелось бы сразу словами. Поэтому, будем изучать мар. Добавлено через 28 минут Подскажите, что я сделал не так, и правильно ли я сделала вообще, потому что код работает, но где-то циклится *сейчас ещё выясню где*
ахаха, всё, ошибку нашла! Кавычки лишние поставила. Спасибо за помощь!!!!!!
0
|
||||||
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
||
| 20.09.2013, 11:09 | ||
|
0
|
||
|
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
|
||||||
| 20.09.2013, 12:25 [ТС] | ||||||
|
I.M. , если вам не сложно, ещё раз:
мар - это абстрактный контейнер, типа хэш таблицы, "ключ-значение", где ключи уникальны. enum - перечисляем (???)
0
|
||||||
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
||||||
| 20.09.2013, 12:36 | ||||||
|
words.at(aa); - тут из мапы по ключу вытаскивается значение
и свитч надо не так писать
1
|
||||||
|
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
|
||||||
| 20.09.2013, 12:43 [ТС] | ||||||
|
ааааа
А вот ещё, допустим, если я буду писать так, как Вы говорите, то не будет ли такой ошибки: когда ввели не help, а hlep -- вылетать? В таком коде, что выше, вылетает, если ввести другое слово. Добавлено через 4 минуты *неа, я написала так, как вы сказали, ввела hlep и вылетела "ошибка", а если случайно не ошибиться, то всё работает. Как бы вот это сделать, что если не элемент (ключ) mар, то идём дальше? итоговый код у меня такой:
0
|
||||||
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
| 20.09.2013, 13:57 | |
|
Думаю, рано рассказывать про exception и try-catch блоки) поэтому другой вариант, самый простой, на мой взгляд
вызывать words.count(aa); метод вернет 1, если слово есть в мапе и 0, если слова там нет про другие методы мапы можно посмотреть, например, тут http://en.cppreference.com/w/cpp/container/map
1
|
|
|
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
|
||||||||
| 20.09.2013, 14:37 [ТС] | ||||||||
![]()
т.е.:
0
|
||||||||
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
||||||
| 20.09.2013, 14:43 | ||||||
|
не совсем так
1
|
||||||
|
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
|
|
| 20.09.2013, 19:08 [ТС] | |
|
аааа, т.е. не вложенные, а последовательные ду-ду. Ааа! Спасибо!
Добавлено через 4 часа 16 минут теперь у меня случилась проблема: когда я ввожу хэлп, мне выводится хэлп, а когда ввожу другой кейс - снова хэлп. Что не так? ![]() *т.е., программу нужно прогнать по 4 кейсам, но в различном порядке, например: help, iterations, help, test. Добавлено через 6 минут аааа, всё, нашла косяг. почему dd не обновлял, их было "2 штуки". Один dd убрала, поставила в конец проверку строчки на "выход" и всё нормально, вроде бы.
0
|
|
|
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
|
|||||||||||
| 28.09.2013, 09:41 [ТС] | |||||||||||
|
Добрый день. Помогите с "хитростью кода".
Дело в том, что мне нужно вводить строчку целиком. Примерно я ввожу:
0
|
|||||||||||
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
||||||
| 28.09.2013, 09:52 | ||||||
|
Думаю примерно так:
1
|
||||||
|
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
|
|||||||
| 28.09.2013, 10:56 | |||||||
0
|
|||||||
|
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
|
|
| 28.09.2013, 10:59 [ТС] | |
|
Коды сейчас не могу проверить, позже.
Return0 - switch из первого сообщения, это условие задачи.
0
|
|
| 28.09.2013, 10:59 | |
|
Помогаю со студенческими работами здесь
19
Как поменять значение числовой переменной в зависимости от значения текстовой переменной Изменение значения переменной, название которой находится в текстовой переменной
Использование оператора switch для выполнения последовательности действий как в С++ Использование конструкции выбора switch для вывода элементов окружности Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
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 Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|