![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 17.12.2009
Сообщений: 101
|
![]()
Продвигаясь по созданию собственного текстового квеста, я наткнулся на новую проблему. Излагаю:
В квесте, как и положено, надо вводить команду. Вводимая команда как бы делится на два слова - на действие (возьми) и объект, над которыми будет проводиться надругательство. То есть char part1[16], part2[16]; С помощью ранее описанных классов создаются действие и объект, в конструкторах описаны их названия. action take("возьми"); object guitar("гитара"); Таким образом, объект take класса action носит имя "возьми", хранимое в переменной char name[16]. Теперь, когда прошлая проблема распознавания кириллицы разрешилась функцией strcmp, я проработал функцию, анализирующую введёную команду: void Analysis(char part1[16], char part2[16]){ if (strncmp(part1, take.name, 4)==1) Take(part2)//Таким образом, для объекта выполняется функция Take, то есть его берут И т.д... } Но только вот что... Кайф идиота обломался быстро: а как ввести за раз вторую часть команды, то есть объект? А то команда cin >> part1,part2 при компиляции ошибки не выдаёт, но, тем не менее, после пробела ничего считывать не желает, и part2 так и остаётся незаполненной. Как бы поэлегантнее решить эту проблему? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 234
|
![]()
один из способов это использование scanf("%s%s",...) - но я думаю что тебе надо не это, так как ввод будет осуществляться через enter
на мой взгляд лучше так: вводимая строка ("действие объект") считывается в некий массив 's'. После чего ты просто уже разбиваешь его на две части относительно пробела. И с полученными частями выполняешь необходимые действия. P.S. На сколько я знаю в сишке есть стандартная функция разбиения строки на части относительно некого разделителя (аналог объекта StringTokenizer'a в Java'e). Но я не знаю что это за функция, найдешь - будет тебе радость )))) |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
![]()
string s1;
string s2; cin >> s1 >> s2; cout << s1 << endl; cout << s2 << endl; в консоле можно вводить слова через пробел. второе слово засунется в s2; |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Движок для городского квеста | theFEAR | Общие вопросы по Java, Java SE, Kotlin | 6 | 14.01.2010 13:26 |
Движок для текстового квеста | Кипящий чайник | Общие вопросы C/C++ | 9 | 18.12.2009 19:24 |
реализация команд с помощью набора других команд | zhenyaa | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 08.11.2009 21:37 |
Компонент для исполнения команд | postal2 | Компоненты Delphi | 2 | 15.10.2009 18:10 |
Срочно! Необходимо написать плагин для Skype (автонабор, распознавание голоса) | Alexls | Фриланс | 12 | 10.09.2007 06:17 |