Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
Vl_zemtsov
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 28
#1

Программа закрывается при нажатии Enter - C++

23.06.2012, 22:34. Просмотров 2296. Ответов 14
Метки нет (Все метки)

Работаю в Visual studio 2010 Exspress C++.
Написал несколько простых программ. При запуске программ, после компиляции, в Visual, они прекрасно работают, НО! Я решил запустить файл .exe который создается в папке проекта Debug.
На прием данных все работает замечательно (т.е. я могу вводить с экрана все что все нужно в программе), но когда я жму Enter, что бы увидеть результат, программа закрывается.
Работаю с библиотекой ввода/вывода <iostream> (using namespase std).
Никакие system("pause") не помогают.
С чем может быть связана проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2012, 22:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа закрывается при нажатии Enter (C++):

Ошибка с массивом: программа при вводе "ступорится" при нажатии клавиши Enter - C++
Задание: Напишите программу, используя указатели, которая вычисляет адреса чётных элементов массива, состоящего из 10 чисел типа float. ...

Закрывается, а не выполняется программа после нажатия enter - C++
Доброй ночки всем. Помогите новичку: после нажатия enter после ввода переменных программа не выполняется, а попросту закрывается. ...

При ENTER закрывается прога - C++
Интересует как заблокировать кнопку ENTER...в label1 ...при нажатии ентер происходит выход из программы ...а нужно что-бы было аналогично к...

Действие при нажатии Enter - C++
Вот недавно здесь нашел код: #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;string&gt; #include &lt;fstream&gt; #include...

При нажатии Enter закончить ввод - C++
Как сделать чтобы завершить написанное нажатием Enter после ввода текста в textlBox ?

Сделать так, чтобы ввод не происходил при нажатии Enter - C++
Как сделать что бы cout &lt;&lt; (letter); не срабатывал после нажатия enter? Когда вставляю перед ним cin.ignore('/n'); цикл перестает...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
23.06.2012, 22:41 #2
попробуйте добавить библиотеку cstdlib

Добавлено через 28 секунд
тогда, system("pause"); должна помочь
Vl_zemtsov
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 28
23.06.2012, 22:48  [ТС] #3
Цитата Сообщение от bLesk Посмотреть сообщение
попробуйте добавить библиотеку cstdlib

Добавлено через 28 секунд
тогда, system("pause"); должна помочь
Не помогло. Так же файл .exe только на ввод данных (в Visual все ок).
(У меня system("pause") без дополнительных библиотек работает)
bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
23.06.2012, 22:51 #4
ну как вариант можно через командую строку запустить )
пуск - выполнить - cmd
потом в окне пишите: cd c:\papka\mestogdefail (прописать естественно путь к файлу) нажимаете enter
далее пишите название файла (программы), и снова enter
Vl_zemtsov
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 28
23.06.2012, 23:06  [ТС] #5
Цитата Сообщение от bLesk Посмотреть сообщение
ну как вариант можно через командую строку запустить )
пуск - выполнить - cmd
потом в окне пишите: cd c:\papka\mestogdefail (прописать естественно путь к файлу) нажимаете enter
далее пишите название файла (программы), и снова enter
Да, так работает, но это более чем геморно)
defer
秘密
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
23.06.2012, 23:30 #6
рядом с exe, создаете bat-файл

Bash
1
cmd /k ваша_программа.exe
Vl_zemtsov
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 28
23.06.2012, 23:43  [ТС] #7
Цитата Сообщение от defer Посмотреть сообщение
рядом с exe, создаете bat-файл

Bash
1
cmd /k ваша_программа.exe
/k не является внутренней или внешней командой, исполняемой программой или пакетный файлом.

+я хочу что бы открывался и корректно работах .exe файл. (открывался на прямую)
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
24.06.2012, 01:23 #8
У меня отлично все работает,попробуйте выбор компиляции изменить на release и 2 раза написать или даже 3 раза написать

C++
1
2
3
system("PAUSE");
system("PAUSE");
system("PAUSE");
или же
C++
1
getch();
Скиньте код,который пишите...
CRonaldo7
0 / 0 / 0
Регистрация: 19.06.2012
Сообщений: 22
26.06.2012, 21:21 #9
C++
1
system("PAUSE");
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.06.2012, 04:31 #10
Цитата Сообщение от Vl_zemtsov Посмотреть сообщение
Работаю в Visual studio 2010 Exspress C++.
Написал несколько простых программ. При запуске программ, после компиляции, в Visual, они прекрасно работают, НО! Я решил запустить файл .exe который создается в папке проекта Debug.
На прием данных все работает замечательно (т.е. я могу вводить с экрана все что все нужно в программе), но когда я жму Enter, что бы увидеть результат, программа закрывается.
Работаю с библиотекой ввода/вывода <iostream> (using namespase std).
Никакие system("pause") не помогают.
С чем может быть связана проблема?
Никогда не интересовало, а сейчас попробовал и получилось то же самое. У себя причину нашёл. Посмотрите, может в папке Debug отсутсвуют какие нибудь данные, необходимые для работы программы. У меня, например, не было файла, который нужно было открыть (в папке проекта он был), а в коде был выход без остановки, если файл невозможно открыть. Поэтому, при вводе имени файла и нажатии на Enter, программа закрывалась.
tomaticus
47 / 47 / 2
Регистрация: 02.01.2011
Сообщений: 505
27.06.2012, 12:28 #11
Vl_zemtsov, чем вас не устраивает
C++
1
getchar()
?
-=ЮрА=-
27.06.2012, 12:46
  #12

Не по теме:

Цитата Сообщение от Vl_zemtsov Посмотреть сообщение
но когда я жму Enter, что бы увидеть результат, программа закрывается.
- покажи код, я уверен на 95% в кривизне кода

Hrundel
26 / 26 / 2
Регистрация: 27.05.2012
Сообщений: 114
27.06.2012, 15:51 #13
Буфер ввода надо очищать, и все будет работать с первого раза
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.06.2012, 17:59 #14
Vl_zemtsov, чем вас не устраиваетКод C++
1
2
3
getchar()



?
При чём здесь getchar(), system("pause") и пр.? Проблема в том, что при запуске в VS всё это работает, а при запуске из папки debug - нет. Код, конечно, хотелось бы посмотреть.
Hrundel
26 / 26 / 2
Регистрация: 27.05.2012
Сообщений: 114
27.06.2012, 21:31 #15
Еще раз добавлю. Напиши перед system("pause"); cin.clear(); и все будет работать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2012, 21:31
Привет! Вот еще темы с ответами:

Как сделать, чтобы диалоговое окно не закрывалось при нажатии клавиши ENTER? - C++
Как сделать, чтобы диалоговое окно не закрывалось при нажатии клавиши ENTER? (если можно то, код)

MS Visual Studio 2013 Express при компиляции программа открывается и сразу закрывается - C++
Вот код: #include &lt;iostream&gt; int main() { std::cout &lt;&lt; &quot;Hello&quot; &lt;&lt; ; system(&quot;pause&quot;); return 0; ...

Остановить считывание scanf по нажатии <enter> - C++
Здравствуйте! Подскажите пожалуйся, как остановиться при нажатии ввода: int iSum = 0, iNumber; while (scanf(&quot;%d,&quot;, &amp;iNumber)) {...

Циклическая программа (при нажатии клавиши повторяет операцию, изменяя данные) - C++
Нужно написать программу, чтобы при каждом повторном нажатии определённой клавиши, программа выполняла какую-либо операцию с изменяющимися...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.06.2012, 21:31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru