![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
![]() ![]() Задача 269: ![]() Ни до чего лучшего я не додумался, кроме как записывать в динамический массив номер начала и конца каждого слова, а потом уже используя этот массив с номерами, сравнивать слова. Пока я только запрограммировал запись этих номеров еще без сравнения:
При исполнении ввод происходит нормально, а когда должены выводится номера, окно просто закрывается...(Borland C++ 3.1) Помогите найти ошибку здесь, а дальше буду пытатся сравнивать. -------------------- Don't let the system get you down. |
|||
|
||||
mekhanikus |
|
|||
Вольноопределяющийся ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 16.6.2008 Где: Спасск-Дальний Репутация: нет Всего: 1 |
Может стоит перейти на с++?
Вот пример из Страуструпа. Программа считает количество повторений каждого слова. До сабжа рукой подать.
|
|||
|
||||
Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
и как она работает? мне ничего не понятно
-------------------- Don't let the system get you down. |
|||
|
||||
Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
неужели программисты не могут найти ошибку в моем коде?
-------------------- Don't let the system get you down. |
|||
|
||||
Abyx |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 5 Всего: 10 |
Metalex, твой код большой, страшный и непонятный.
никто не хочет его читать перепиши на С++ Это сообщение отредактировал(а) Abyx - 10.11.2009, 19:43 |
|||
|
||||
Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
Abyx, а это что?
-------------------- Don't let the system get you down. |
|||
|
||||
N1ko |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Основная проблема по которой ты даже не можешь посмотреть результаты своей программы - это особенности оператора gets. Объясняю подробнее: перед его использованием ты вводишь колличество символов оператором cin>>n; Соответственно в n записывается введённое тобой число а во входной очереди остаётся последовательность '/n', собственно на которую gets и реагирует. Таким образом gets принимает эту последовательность и завершается и в твоём чаровском масиве записывается 0 символов. А вся строкаа, которую ты пишешь дальше - ты пишешь для оператора getch(). Поставь после cin>>n; оператор getch() и будешь уже получать содержательные результаты, на которые будешь уже сстветственно реагировать.
ЗЫ А сам код не смотрел, потому что он у тебя действительно кривовато написан и нет никакого желания тратить время на его проверку. ЗЫЫ И перейди с (Borland C++ 3.1) на что нибуть поновее. Слишком уж старая версия плюсов. =) Это сообщение отредактировал(а) N1ko - 11.11.2009, 00:38 |
|||
|
||||
Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
N1ko, getch() - это для задержки экрана, чтоб он не пропадал сразу же после выполнения программы.
Посоветуй, на что поновее? -------------------- Don't let the system get you down. |
|||
|
||||
N1ko |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
1) getch() насколько я помню ждёт принятия одного символа, а задержка экрана это только последствие работы этого оператора
2) Ну например dev C++ А если собираешься серьёхно этим заниматься то устанавливай visual studio и выбирай там консольный проект Это сообщение отредактировал(а) N1ko - 11.11.2009, 02:11 |
|||
|
||||
Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
Dev C++, журнал компиляции:
Здесь есть какие-то предупреждения, но я не пойму какие.. -------------------- Don't let the system get you down. |
|||
|
||||
N1ko |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
ну одна из ошибок Вместо <iostream.h> нужно писать <iostream> Это новый стандарт. Исходя из твоего изначального кода ещё нужно убрать getch () и conio.h так как это так это уже тоже не используется. Перед каждым cin и cout напиши std:: Что это такое можешь почитать в инете. Благо инфы по этому поводу много. Вместо getch() используй cin.get(); фоператор принимающий один символ.
<strstream.h> у тебя тож не правильный. Правда не помню для чего он юзается. В общем всё нужно заменить по новым стандартам. После того как прочтёшь это всё,и справишь и что то будет не получаться, кинь код - помогу. Это сообщение отредактировал(а) N1ko - 11.11.2009, 12:00 |
|||
|
||||
ThisIsSparta |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 29.7.2009 Репутация: нет Всего: нет |
||||
|
||||
N1ko |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Ну я вообщето это написал )))) А здесь как бы между этими вариантами выбрать не получится, по этому слово лучше здесь мягко говоря не уместно. Ведь всё зависит только от компилятора насколько я знаю. Только в зависимости от него мы будем выполнять тот или инной оператор.
Это сообщение отредактировал(а) N1ko - 11.11.2009, 16:44 |
|||
|
||||
ThisIsSparta |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 29.7.2009 Репутация: нет Всего: нет |
мда, не заметил))
не очень понял, это относится к cin.get() vs getch()? cin.get - это, насколько я знаю, кроссплатформенный вариант (из iostream), а getch() - не входит в стандартную библиотеку c++ (из conio.h). |
|||
|
||||
N1ko |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Я почему то думал что cin.get() в Borland 3.1 C++ не было ещё. Значит ошибался. =) Сорри =))
|
|||
|
||||
Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
ок займусь оптимизацией кода.
-------------------- Don't let the system get you down. |
|||
|
||||
Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
Массив с номерами не хочет выводится. -------------------- Don't let the system get you down. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Metalex,
где ты выделяешь память под переменные типа int, которые инициализируешь в строках 27 и 28? |
|||
|
||||
SemiC4 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.7.2010 Репутация: нет Всего: нет |
Здравствуйте, я токо начинаю. Читаю Страуструпа. вот этот пример про подчет количества вхождения слов в строке. у меня вопрос почему не заканчивается ввод, создается впечатление, что интер программа не воспринимет как конец ввода. и программа не выходит из алгоритма for_each(ii,eos,record); |
||||
|
|||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
>конец ввода это Ctrl+Z
В DOS и Win. Исторически и в unix конец передачи (или файла) - ctrl+d. Добавлено через 2 минуты и 40 секунд Исторически - я имел в виду аски-код, забинденный на это сочестание. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
SemiC4 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.7.2010 Репутация: нет Всего: нет |
огромное спасибо ![]() ![]() ![]()
не пойму почему после того как я ввел строку, нажал интер, потом ctrl+z, интер, программа выводит результат и закрывается, причем пишется что программа завершилась с тем кодом что указан в ретуне функции майн ![]() Это сообщение отредактировал(а) SemiC4 - 23.7.2010, 20:48 |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
SemiC4, читать надо начинать c часто задаваемых вопросов
|
|||
|
||||
SemiC4 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.7.2010 Репутация: нет Всего: нет |
Спасибо конечно за совет, но то что описано здесь, в часто задаваемых вопросах, (про быстрое закрытие программ, в самом конце) мне не помогло, потому как даже с такими изменениями в коде
результат тот же ![]() |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
блин. конечно тут не будет работать, так как после первого for_each поток std::cin перешел в состояние "конец файла" и из него больше ничего не читается. В данном случае, "паузу" можно сделать только через system("pause"), но функция quit() работать не будет. Решить проблему можно тремя путями:
1. читать значения из файла 2. зарезервировать определенное слово (или пустую строку) для выхода, например "quit" - в случае ее появления программа завершает ввод. 3. читать только определенное количество слов (например, предварительно спросив у пользователя) |
|||
|
||||
SemiC4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.7.2010 Репутация: нет Всего: нет |
Огромное спасибо, bsa ![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |