Доброго времени суток,
У меня при попытке вызвать system("pause") во время исполнения программы пишется такая фраза на экране: sh: pause: command not found
Но это ничего страшного. Поменял на std::cin.get(), читал где-то, что так правильнее. Но потом все равно возникли проблемы - слишком сложно как-то стало программу из башника вызывать.
Поэтому такой вопрос. С Вашей точки зрения, консольные приложения нужны в первую очередь для того, чтоб их пользователь вызывал, или чтобы другие программы их вызывали?
Спасибо!
Другие языки программирования и технологии
Для чего нужны консольные программы, и что означает system("pause") в C++ ?
Есть мнение, что вызовы через system это вообще зло, которого лучше избегать.
И да - приложения внешние для пользователя и скриптов, иначе Вы завязываетесь на систему, где та или иная команда может работать, а в другой не работать. Как Вы убедились в Linux pause нет, в отличие от Windows. Зато есть sleep =)
Есс-но если программу писать чисто для себя - то в принципе, можно и поблажку себе сделать, но лучше отвыкать сразу.
+ Есть мнение, что пауза (особенно перед выходом) консольной программы это ещё большее зло. Т. к. не позволяет нормально автоматизировать процессы
И да - приложения внешние для пользователя и скриптов, иначе Вы завязываетесь на систему, где та или иная команда может работать, а в другой не работать. Как Вы убедились в Linux pause нет, в отличие от Windows. Зато есть sleep =)
Есс-но если программу писать чисто для себя - то в принципе, можно и поблажку себе сделать, но лучше отвыкать сразу.
+ Есть мнение, что пауза (особенно перед выходом) консольной программы это ещё большее зло. Т. к. не позволяет нормально автоматизировать процессы
Консольные программы (без интерактивного интерфейса) используются там, где нужна автоматизация технологического процесса. Они встречаются чаще, чем можно представить, обычно, когда надо обработать регулярно обновляемую информацию [b]без [/b} вмешательства юзера. нпрм, где-то в 4:00 МСК на данном сервисе запускается программа обновления рейтингов. Достаточно заглянуть в планировщик заданий, дабы убедиться, что такой формат актуален и активно используется. Собственно, из них выросли окошки.
Что касаемо удобства отладки, так это поправимо. Можно пользовать среду менеджера. нпрм Far Manager. В этом случае не нужно ни паузы, ни cin.get()
Что касаемо удобства отладки, так это поправимо. Можно пользовать среду менеджера. нпрм Far Manager. В этом случае не нужно ни паузы, ни cin.get()
Глеб Парыгин
Службы (windows) или демоны (*.nix) могут прекрасно справятся с задачами для автоматизации без интерфейса вообще.
Консольные программы нужны для обучения начинающих программистов.
Виталик Рябцев
OK. А можно тогда еще уточняющий вопрос.. . для чего еще они нужны? Хотя бы самые основные случаи использования, в которых консоль будет лучше, чем продвинутый интерфейс с окошками.
system() вызывает команду оболочки. system("pause") - это в Windows; но вообще это не очень хороший стиль программирования - вызывать еще одну программу для того, чтобы просто ввести ненужный символ. Ну и вообще - если программа предназначена для исполнения в консоли, то зачем там пауза?
А консольные программы нужны и для того, чтобы с ними работать пользователю, и для того, чтобы автоматизировать их выполнение с другими программами.
А консольные программы нужны и для того, чтобы с ними работать пользователю, и для того, чтобы автоматизировать их выполнение с другими программами.
Консольные приложения нужны чтобы их из батника запускать, а не из кода проги. И кто тебе мешает pause в самом батнике прописать?
Виталик Рябцев
IDE зачастую вызывает командно-строковый компилятор или линкер из кода проги. А консольные CGI-приложения, например, вызываются веб-сервером.
В обоих случаях получается, что консольное приложение вызывается из кода полноценной проги, а не скрипта.
Получается, они просто спроектированы ошибочно?
В обоих случаях получается, что консольное приложение вызывается из кода полноценной проги, а не скрипта.
Получается, они просто спроектированы ошибочно?
> У меня при попытке вызвать system("pause")
У вас Linux, Mac или другая ОС, отличная от винды, system() не работает ровно потому же, почему на этих ОС не работают виндовые батники. system() использует тот же интерпретатор, который выполняет батники.
А консоль еще хороша для экспериментов с какой-то новой сторонней библиотекой. Нужно создать пробный проект и разобраться как с этой библиотекой работать. GUI создавать лень, а какой-то ввод-вывод нужен.
У вас Linux, Mac или другая ОС, отличная от винды, system() не работает ровно потому же, почему на этих ОС не работают виндовые батники. system() использует тот же интерпретатор, который выполняет батники.
А консоль еще хороша для экспериментов с какой-то новой сторонней библиотекой. Нужно создать пробный проект и разобраться как с этой библиотекой работать. GUI создавать лень, а какой-то ввод-вывод нужен.
system("pause"); - пауза в консоли (после выполнения программы или после определенного действия)
Похожие вопросы
- c++ system("pause") и sin.get() выполняют одну и ту же функцию?
- Консольная программа (элементарная) на C++.
- с++ для чего вообще нужны консольные приложения?
- помогите пожалуйста кто смыслит в C# или в C++, очень нужна ваша помощь, нужен код программы, точнее двух
- что неправильно? взгляните. консольная программа на С++
- Нужен код программы, C++
- Что оно означает и для чего c++? Буду очень благодарен).
- Что лучше для новичка, что бы написать программу? 1.Visual Basic 2.Delphi 3.C++ 4.Assembler
- Помогите написать программу на С++: Заданы отрезки a,b,c,d. Проверить, могут ли они служить сторонами прямоугольника
- Как будет выглядеть программа решения квадратного уравнения ax^2 + bx + c = 0 (Паскаль)???
$uname -a
Darwin <hostname here> 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64