Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2011, 23:58   #11
genrix
просто
Форумчанин
 
Аватар для genrix
 
Регистрация: 17.02.2011
Сообщений: 405
По умолчанию

пусть getch(); и нестандартный велосипед - а ездит!!!
Не стоит читать свои переписки двухлетней давности...
genrix вне форума Ответить с цитированием
Старый 20.02.2011, 10:09   #12
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

небольшой рассказ про system("pause")
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 20.02.2011, 14:16   #13
alex_x_x
Форумчанин
 
Регистрация: 31.01.2011
Сообщений: 160
По умолчанию

kaljan775, почитать интересно, но может не стоит так близко к сердцу?
alex_x_x вне форума Ответить с цитированием
Старый 20.02.2011, 14:49   #14
genrix
просто
Форумчанин
 
Аватар для genrix
 
Регистрация: 17.02.2011
Сообщений: 405
По умолчанию

Было интересно.
Не стоит читать свои переписки двухлетней давности...
genrix вне форума Ответить с цитированием
Старый 21.09.2013, 10:15   #15
Skripkin90
Новичок
Джуниор
 
Регистрация: 20.09.2013
Сообщений: 1
По умолчанию

Товарищ, собственно почему у вас такие странные вопросы? Какая из них быстрее? Да вы же по-сути ОЖИДАНИЕ ставите, и оно прекратится когда ПОЛЬЗОВАТЕЛЬ из него выйдет по собственному желанию. Какая вам разница какая из них работает быстрее??? Неужели вы считаете что этим пользователя заставите ждать??? Или у вас после их выполнения стоят ещё команды и вы желаете чтобы они начали выполняться побыстрее? -Если они у вас есть то они начнут выполняться только после того как пользователь всё у вас прочитает и ткнёт пальцем по клавише, а это несравненно дольше чем время выполнения любой из этих команд, не правда ведь? .... Ну неужели вы там +100500 раз прогоняете в цикле эту остановку и тем самым измучив в конец бедного пользователя хотите сделать прибавку к олимпийскому рекорду по выполнению подобных программ аж на целых 0,1 секунды? .... Ну я не знаю может у вас там выполняются параллельные потоки, и в силу обстоятельств им желательно чтобы остановка с ожиданием закончилась побыстрее... Но согласитесь, тут время на остановку будет целиком зависеть от пользователя. Не правда ведь? Он может вообще не стать читать то что вы ему приготовили, он может прочитать, он может отвлечься при этом, он может вообще пойти пить чай, решив оставить нагрузку на свой мозг которую вы ему там приготовили на последующий период активной работы. Но и это не придел! Во время чаепития его может позвать начальник, нуждающиеся в нём коллеги, а вдруг там совещание наметилось или разрешение проблемы затянулось? Представляете как ничтожны могут оказаться все ваши труды по сокращению времени исполнения начала задержки?
Кто обиделся прошу простить, но лично я вижу сторону которую можно учесть - то что system("PAUSE") требует подключения библиотеки iostream, а getch() - библиотеки conio.h . Если не хотите подключать лишнюю библиотеку то смотрите какую уже используете. Но в консольном приложении на С++ вы наверное всегда будете использовать библиотеку iostream , да к тому же system("PAUSE") ещё и пояснение пользователю даёт. Да и Obey-Kun говорит что это способ стандартный.

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
Лучше вообще ничего такого не использовать. Консольная программа не должна ждать нажатия клавиши для своего завершения.
Obey-Kun , консольные приложения используют прежде всего для начального обучения программированию. К тому же на C++ операторы << и >> можно перегрузить и для этого нужно подключать <iostream> и такая перегрузка будет использоваться в институтах тоже на консольном окне имхо там результат сразу виден. И, наконец, я видел патчи и кряки контактирующие с пользователем через это же самое консольное окно. Так что консольные приложения совсем из использования не выходят. ))
Skripkin90 вне форума Ответить с цитированием
Старый 21.09.2013, 11:11   #16
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

system("pause") - очень плохо, я уже где-то писал по чему.

getch() - вроде бы не плохо, но не стандартно (или я с kbhit путаю?). Лучше применять cin.get() (если речь о плюсах, на голом С надо смотреть что там из аналогов.).

Я конечно понимаю, что это у Вас, скорее всего, заглушка что бы программа не закрывалась тут же после выполнения, но вы не правильно подходите к вопросу.

getch() и cin.get() и подобные вещи предназначены для ввода, а команда PAUSE для, внезапно, паузы. Но лучше, если вам нужна пауза, использовать sleep().


Цитата:
. Так что консольные приложения совсем из использования не выходят. ))
Не буду обсуждать тут Linux и утраивать холивар, но вот последнее более-менее современное виндовое консольное приложение, которое я видел - denver (лабы студентов не считаются, и самопальные проги типа "быстренько что-то там посчитать, влом рисовать гуй)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 21.09.2013 в 11:22.
ROD вне форума Ответить с цитированием
Старый 22.09.2013, 01:18   #17
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Я считаю, что эти команды не нужно использовать. В популярной среде Visual Studio можно запустить приложение Ctrl+F5 и окно будет ждать нажатия кнопки. В NetBeans окно по умолчанию ждёт нажатия кнопки. Во всех остальных средах тоже это наверняка учли. В релизной же версии приложение всё равно же из консоли запускается и задержка до нажатия клавиши не требуется.

Последний раз редактировалось 8Observer8; 22.09.2013 в 01:20.
8Observer8 вне форума Ответить с цитированием
Старый 22.09.2013, 19:33   #18
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от 8Observer8 Посмотреть сообщение
В популярной среде Visual Studio можно запустить приложение Ctrl+F5 и окно будет ждать нажатия кнопки.
И что теперь, запускать приложения только исключительно из под студии?

Готовое к употреблению приложение (файл.exe ) тоже из под вижал студии запускать?
_Bers вне форума Ответить с цитированием
Старый 22.09.2013, 22:16   #19
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
И что теперь, запускать приложения только исключительно из под студии?

Готовое к употреблению приложение (файл.exe ) тоже из под вижал студии запускать?
При разработке - средствами среды. Я написал:
Цитата:
Сообщение от 8Observer8 Посмотреть сообщение
В популярной среде Visual Studio можно запустить приложение Ctrl+F5 и окно будет ждать нажатия кнопки. В NetBeans окно по умолчанию ждёт нажатия кнопки. Во всех остальных средах тоже это наверняка учли.
А про exe я тоже написал:

Цитата:
Сообщение от 8Observer8 Посмотреть сообщение
В релизной же версии приложение всё равно же из консоли запускается и задержка до нажатия клавиши не требуется.
8Observer8 вне форума Ответить с цитированием
Старый 22.09.2013, 22:18   #20
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

А если не из консоли?

Это виндовс, Бро!
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть ли аналог system("pause") для c# или другой оператор который не позволяет окну закрыться после выполнения программы? MrJenika Общие вопросы C/C++ 1 01.09.2010 23:29
Как работает system("copy \"C:\\1\"")? Alena-b-v Общие вопросы C/C++ 4 01.09.2010 17:27
Ошибка сегментации при вызове system("PAUSE") Lavisa Общие вопросы C/C++ 9 01.08.2009 18:14
Ошибка сегментации при вызове system("PAUSE") Lavisa Помощь студентам 0 29.07.2009 17:43
Подскажите кто-нибудь в чем отличие между system("pause"); и getch(); какую лучше использовать? Paul_AG Общие вопросы C/C++ 7 24.03.2009 19:32