|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.02.2010, 18:28 | #1 |
Форумчанин
Регистрация: 17.12.2009
Сообщений: 101
|
Ввод в одну строку
Все проблемы текстового квеста растут из ввода команд. Как показала практика, использование двух переменных - очень неудобно:
Код:
Я попробовал использовать одну переменную, вводил её при помощи wcin.getline(p1,99). Вот я ввожу команду: возьми гитару "возьми" и "гитара" - такие символьные переменные есть. Это всё сохраняется в одной переменной, и функция wcsncmp(part1,take,4) видит слово "возьми", слава Богу, однако wcsncmp(part1,guitar,4) слово "гитару" не видит в упор, и, как результат, работа стопорится. Не подскажете, как же всё-таки грамотно построить алгоритм анализа? Последний раз редактировалось Кипящий чайник; 20.02.2010 в 20:03. |
20.02.2010, 18:40 | #2 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
Используй юникодный вариант функции strtok, ну или wcstok, она разбивает исходную на подстроки, примеры ищи где-нибудь
Я лишь дал пищу для гугля
Если я помог вам - порадуйте меня, нажмите на весы слева
|
20.02.2010, 20:00 | #3 |
Форумчанин
Регистрация: 17.12.2009
Сообщений: 101
|
К сожалению, паства на гугле дала скудные результаты - в частности, примеры были устаревшими и не компилировались из-за ошибок.
Так что, видимо, всё же придётся вам подкинуть парочку примеров чайнику. Последний раз редактировалось Кипящий чайник; 21.02.2010 в 10:59. |
21.02.2010, 12:26 | #4 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 218
|
пример в msdn'е есть на счет strtok, там свежачок и все компилится
|
21.02.2010, 12:37 | #5 |
Форумчанин
Регистрация: 17.12.2009
Сообщений: 101
|
Ну, там же strtok, а wcstok таки да отличается от strtok дополнительным параметром, и соответсвенно, манерой использования...
Последний раз редактировалось Кипящий чайник; 21.02.2010 в 12:39. |
21.02.2010, 14:13 | #6 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Я всё же не пойму, почему вы не используете стандартную библиотеку Си++? Это ведь намного удобнее, проще и меньше вероятность ошибки
Код:
или, если уж на то пошло, то wcstok и strtok имеют одинаковое кол-ство параметров. http://msdn.microsoft.com/ru-ru/library/2c8d19sb.aspx |
21.02.2010, 15:16 | #7 |
Форумчанин
Регистрация: 17.12.2009
Сообщений: 101
|
Ну, на первый вопрос ответить просто - я этакий олдфаг, мне к тому же очень Си нравится. Не люблю модные фичи С++, на раз уж без них нельзя...
А во-вторых, ваш способ вызывает у меня сомнения. Так ли уж он отличается от scanf("%S%S",command,object)? И надёжен ли он - запишется ли то, что нужно, куда нужно, а не в одну переменную, как это иногда бывает? Мне нужна стопроцентная надёжность. |
21.02.2010, 17:39 | #8 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Цитата:
|
|
21.02.2010, 18:02 | #9 |
Форумчанин
Регистрация: 17.12.2009
Сообщений: 101
|
В моём случае это был не scanf, а wscanf, и там вводилась команда о двух частях:
Код:
|
21.02.2010, 18:15 | #10 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Цитата:
Прежде чем браковать библиотечные ф-ции, проверьте на ошибки свои, вероятность, что проблема именно в них значительно выше. Есть ли какая-нибудь закономерность при возникновении этой ошибки? |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Загрузить файл в одну строку на Perl | Sergey2 | Perl | 4 | 16.07.2009 21:03 |
Как в C++ организовать ввод данных в одну строчку? | amdbodia | Общие вопросы C/C++ | 10 | 16.05.2009 18:03 |
Уникальные значения в одну строку | Iskin | Microsoft Office Excel | 9 | 08.03.2009 09:39 |
Ввод текста и ссылки в одну ячейку | Апчхи | Microsoft Office Excel | 5 | 03.02.2009 10:44 |
Запись в одну строку | Terran | Общие вопросы Delphi | 2 | 08.05.2008 23:35 |