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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2011, 17:46   #1
LuckyTrue
 
Регистрация: 17.07.2011
Сообщений: 3
Вопрос Причина завершения программы

Извиняюсь, если такой вопрос уже был. Объясните пожалуйста.
Я написал консольное приложение, компилятор построил его без ошибок, но после запуска программы окно приложения сразу закрывается. В чем причина? И как можно это исправить, не используя команду system("pause") и оператор getch()??? Заранее благодарен за ответ.
LuckyTrue вне форума Ответить с цитированием
Старый 17.07.2011, 18:01   #2
TDrive
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 95
По умолчанию

открыть командную строку в винде и в ней запустить программу

программа завершается по этому окно и закрывается.
TDrive вне форума Ответить с цитированием
Старый 17.07.2011, 18:25   #3
LuckyTrue
 
Регистрация: 17.07.2011
Сообщений: 3
По умолчанию

Код:
#include <iostream>
using namespace std;
int main ()
{
	cout << "Window Close!" << endl;
	return 0;
}
Как сделать чтобы она не закрывалась?
LuckyTrue вне форума Ответить с цитированием
Старый 17.07.2011, 18:43   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Код:
#include <iostream>
using namespace std;
int main ()
{
	cout << "Window Close!";
           cin.get();           
	return 0;
}
Как-то так.

Последний раз редактировалось _-Re@l-_; 17.07.2011 в 19:33.
_-Re@l-_ вне форума Ответить с цитированием
Старый 17.07.2011, 19:05   #5
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от LuckyTrue Посмотреть сообщение
Извиняюсь, если такой вопрос уже был. Объясните пожалуйста.
Я написал консольное приложение, компилятор построил его без ошибок, но после запуска программы окно приложения сразу закрывается. В чем причина? И как можно это исправить, не используя команду system("pause") и оператор getch()??? Заранее благодарен за ответ.
Если вы работаете с Microsoft Visual С++, то там есть режим отладки, который запускается комбинацией клавиш Ctrl+F5.
Ежели тот пакет, который вы используете для разработки программ не предоставляет такую возможность, то надо просто вставить какую-то задержку, например, ввод с клавиатуры.
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Старый 17.07.2011, 23:46   #6
LuckyTrue
 
Регистрация: 17.07.2011
Сообщений: 3
По умолчанию

Сыроежка Огромное спасибо.
С Ctrl+F5 не закрываеться.
LuckyTrue вне форума Ответить с цитированием
Старый 18.07.2011, 06:21   #7
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
Код:
#include <iostream>
using namespace std;
int main ()
{
	cout << "Window Close!";
           cin.get();           
	return 0;
}
Как-то так.
Точнее,
Код:
#include <iostream>
using namespace std;
int main ()
{
	cout << "Window Close!" << endl;
	cin.ignore();
	cin.get();
	return 0;   //А это вообще можно убрать. Отсутствие return в последней строке функции main (для других функций это не справедливо) означает return 0; по умолчанию.
}
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 18.07.2011, 07:17   #8
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Гром, так ведь в моём коде нет endl, поэтому там не надо cin.ignore(); вроде.
_-Re@l-_ вне форума Ответить с цитированием
Старый 18.07.2011, 08:13   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в вашем коде вообще нет cin(кроме get()) потому и не нужно, cout то другой объект.
но на практике будет лучше правильно запускать приложение.
Цитата:
Если вы работаете с Microsoft Visual С++, то там есть режим отладки, который запускается комбинацией клавиш Ctrl+F5.
2008/2010 при отладке закрываются, ибо программист если надо ставит бряк.
а вот при запуске без отладки, запускается через батник вида:
Код:
@<программа>
@pause
потому и остается консоль.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.07.2011, 12:27   #10
Sadist989
Пользователь
 
Аватар для Sadist989
 
Регистрация: 12.08.2010
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Гром Посмотреть сообщение
Точнее,
Код:
#include <iostream>
using namespace std;
int main ()
{
	cout << "Window Close!" << endl;
	cin.ignore();
	cin.get();
	return 0;
}
Зачем столько много писать просто сделать вот так:
Код:
#include <iostream>
using namespace std;
int main ()
{
	cout << "Window Close!" << endl;
	cin.get();
}
И все будет работать отлично и без ошибок.
Sadist989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Причина ошибки cargo29 Работа с сетью в Delphi 4 19.03.2011 19:34
Причина ошибки Wa_sja Паскаль, Turbo Pascal, PascalABC.NET 11 05.09.2010 23:07
Работа с БД после нестандартного завершения программы Gurt87 БД в Delphi 8 17.02.2010 15:14
Восстановление видеорежима после завершения программы Marsel737 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 10.12.2009 23:11
Определение завершения сторонней программы Хамяг Общие вопросы Delphi 3 26.11.2008 18:12