|
Модераторы: LSD, AntonSaburov |
|
cube |
|
||||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 11.4.2007 Репутация: нет Всего: 3 |
Не могу завершить ввод строки
Иными словами StdIn.isEmpty() никогда не срабатывает и программа ждет что я буду вводить еще. Ни Ctrl+D ни Ctrl+Z не работает StdIn это сторонний класс, исходник
|
||||
|
|||||
Magistrus |
|
|||
Жив Профиль Группа: Участник Сообщений: 129 Регистрация: 14.6.2006 Где: г. Одесса Репутация: нет Всего: 1 |
Хотя использовать прерывания для логики и не очень хорошо, но как то так. Ввод не числа прервет процесс ввода.
Это сообщение отредактировал(а) Magistrus - 9.1.2014, 18:22 --------------------
~ вот такая вот загагулина ~ |
|||
|
||||
Pawl |
|
||||
Опытный Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 1 Всего: 28 |
Метод isEmpty() возвращает true когда отсутствует всякий ввод. Пустой ввод - это тоже ввод, поэтому он и не срабатывает, т. к. базируется на методе hasNext, про который в документации сказано:
Попробуйте в цикл ввести условие выхода:
Я специально не использовал условие !StdIn.isEmpty(), т. к. оно тру при любом вводе и не использовал StdIn.readInt() , т. к. до него уже использовал readLine(). Вам надо лучше разобраться с методами nextLine() и nextInt(), на которых они основываются. Это сообщение отредактировал(а) Pawl - 9.1.2014, 18:26 -------------------- В действительности всё совсем не так, как на самом деле |
||||
|
|||||
Magistrus |
|
|||
Жив Профиль Группа: Участник Сообщений: 129 Регистрация: 14.6.2006 Где: г. Одесса Репутация: нет Всего: 1 |
Ты просто упустил, что StdIn.readInt(); очищает поток ввода, поэтому у тебя никогда и не срабатывает StdIn.isEmpty()
Это сообщение отредактировал(а) Magistrus - 9.1.2014, 18:31 --------------------
~ вот такая вот загагулина ~ |
|||
|
||||
cube |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 11.4.2007 Репутация: нет Всего: 3 |
для терминала есть комбинации клавиш завершающие ввод данных, например Ctrl+Z илиCtrl+D для разных ОС свои. Но почему-то, в оутпуте нетбинса не работает
|
|||
|
||||
Pawl |
|
|||
Опытный Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 1 Всего: 28 |
В netbeans'e для этого есть команда в меню Выполнить -> остановить сборку/выполнение (в англ. варианте: Run -> Stop Build/running, если не ошибаюсь) Это сообщение отредактировал(а) Pawl - 10.1.2014, 06:52 -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
cube |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 11.4.2007 Репутация: нет Всего: 3 |
нет, вопрос до сих пор не решен, и как я полагаю в нетбинсе работать не будет, хотя прекрасно работает в консоли
|
|||
|
||||
Pawl |
|
||||
Опытный Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 1 Всего: 28 |
Ctrl+Z в консоли windows - это
В вашем нетбинсе она не работает? Или я вас не так понял? Это сообщение отредактировал(а) Pawl - 20.1.2014, 00:01 -------------------- В действительности всё совсем не так, как на самом деле |
||||
|
|||||
cube |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 11.4.2007 Репутация: нет Всего: 3 |
есть момент когда ты не прерываешь выполнение программы, а завершаешь ввод символов, еще с древних времен, когда была только консоль было необходимо как-то завершать ввод символов в предложениях где требовался длинный ввод, но не завершать само приложение, сочетание клавиш позволяло это.
Данная библиотека используется для обучения алгоритмов и используется только в этих целях, единственно она по умолчанию должна быть использована в приложениях запуск которых осуществляется через командную строку, а не в среде. Может кто сталкивался, и пробовал использовать "длинный, многострочный" ввод и уже попадал на эти грабли. (оффтоп)книга сообственно от куда и сама библиотека вот http://algs4.cs.princeton.edu/home/ - советую, но убивает каждый раз компилить через javac и запускать через java указывать класспас - больше времени уходит на это, чем на изучение самого материала Это сообщение отредактировал(а) cube - 20.1.2014, 00:17 |
|||
|
||||
Pawl |
|
|||
Опытный Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 1 Всего: 28 |
ИМХО, сейчас это излишне. А не лучше ли написать такую программу, которая бы не требовала танцев с бубном, и сама позволяла бы корректно завершать или прерывать ввод данных? Не вижу смысла для обучения использовать некорректные алгоритмы... Это сообщение отредактировал(а) Pawl - 20.1.2014, 00:40 -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
cube |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 11.4.2007 Репутация: нет Всего: 3 |
так она же не моя, а из библиотеки предлагаемой с книгой
|
|||
|
||||
Pawl |
|
|||
Опытный Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 1 Всего: 28 |
Ага... Честно, не особо хочется искать по той ссылке библиотеку. Она в формате jar? Я правильно понял, что вы хотите подключить эту библиотеку в проект нетбинс? Если на оба вопроса ответ да, могу рассказать, как это сделать, а если нет... Даже не знаю, чем тогда помочь. -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
cube |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 11.4.2007 Репутация: нет Всего: 3 |
Да, на оба вопроса ответ да)) Я подключил и использую, но как только дело доходит до много строчного ввода данных в приложении я изощряюсь как могу) для тестирования алгоритмов ручками создаю и прописываю переменные в коде.
|
|||
|
||||
Pawl |
|
|||
Опытный Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 1 Всего: 28 |
То есть, как подключать библиотеку вы знаете. А в этой этой библиотеке явно определяется сочетание клавиш Ctrl+Z илиCtrl+D для прерывания ввода данных? Если нет, то тогда какие претензии к библиотеке? Вот этот цикл
вы пишете сами или берете из этой библиотеки? Я более, чем уверен что сами, т. к. не может быть в пособии такой косяк, как бесконечный цикл. Поэтому опять же, какие претензии к библиотеке? -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
cube |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 11.4.2007 Репутация: нет Всего: 3 |
я тоже думал почему так, пока не проверил в консоли, в консоли все ок ;) тема уже не актуально Pawl и Magistrus спасибо!
|
|||
|
||||
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java tools & IDE's | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |