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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
Sovershennui
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 22
#1

Вылет программы после завершения - C++

30.07.2013, 15:03. Просмотров 2093. Ответов 48
Метки нет (Все метки)

Добрый день. Сегодня решил начать изучение языка программирования. Нашел учебник для чайников, там построение задач ведется с использованием GNU C++. Данную программу я не нашел (возможно, плохо искал. у меня 7-ая винда, если сможете помочь с этим, заранее спасибо). Скачал Dev C++. Говорят, одно и то же.
Вообщем, вот первое, что предлагается в учебнике:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <iostream.h>
int main(int nNumberofArgs, char* pszArgs[])
{
int nNCelsius;
cout << " Temperatura po Celsiu ";
cin >> nNCelsius;
int nNFactor;
nNFactor = 212 - 32;
 
int nFahrenheit;
nFahrenheit = nNFactor * nNCelsius/100 + 32;
cout << "Temperatura po Farengeitu ";
cout << nFahrenheit;
return 0 ;
}
Вообщем-то, простая программа. Но меня интересует другой вопрос: когда открываю файл name.exe (скомпилированный этим кодом), ввожу значение, далее быстро появляется строка со значением температуры по Фаренгейту и программа закрывается. Все это проходит за интервал времени менее секунды.
В гугле решения не нашел, решил обратиться к знатокам.
Вроде у меня и стоит "return 0", которое, как я понял, должно вернуть к началу операции
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2013, 15:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вылет программы после завершения (C++):

Востановление состояния программы после завершения - C++
Здорова господа!!! Пишу прогу которая работает можно сказать в фоновом режиме (непрерывно) и от нужно например при непредвиденных...

Ошибка после завершения программы. Двоичные файлы. Структуры - C++
Программа работает нормально по записи в двоичный файл и считывании с него, но одна проблема появляется в конце после завершения программы....

Ошибка завершения программы после "return 0" - C++
stdafx.h #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace std; #include &quot;Student.h&quot; Student.h ...

Вылет программы на деструкторе - C++
Здравствуйте, подскажите пожалуйста что не так? Программа не корректно завершается #pragma once #pragma warning(disable:4996) ...

Вылет после компиляции - C++
Реализация алгоритма Дейкстры. После запуска компиляции - вылет из CodeBlocks #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using...

Вылет из программы при выполнении - C++
Вот ф-ция из-за которой вылетает программа.Ф-ция считает среднее арифметическое соседних элементов массива который был обьявлен как...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
30.07.2013, 15:10 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio>
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main(int nNumberofArgs, char* pszArgs[])
{
   int nNCelsius;
   cout << " Temperatura po Celsiu ";
   cin >> nNCelsius;
   int nNFactor;
   nNFactor = 212 - 32;
 
   int nFahrenheit;
   nFahrenheit = nNFactor * nNCelsius/100 + 32;
   cout << "Temperatura po Farengeitu ";
   cout << nFahrenheit;
   system("pause");
   return 0 ;
}
0
Sovershennui
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 22
30.07.2013, 15:31  [ТС] #3
После того, как скопировал и вставил Ваш код.
Вылет программы после завершения

Добавлено через 10 минут
То бишь появилось 5 новых ошибок. Естественно, вопрос остается актуальным.
0
stragger
39 / 39 / 2
Регистрация: 05.12.2011
Сообщений: 343
30.07.2013, 15:33 #4
Sovershennui, а какие ошибки-то?
попробуй эту строку убрать, здесь это подключение лишнее, да и не совсем корректное
C
1
#include <stdio>
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
30.07.2013, 15:35 #5
Цитата Сообщение от Sovershennui Посмотреть сообщение
После того, как скопировал
Плохо скопировали. Уберите из начала кода столбец чисел.
0
Sovershennui
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 22
30.07.2013, 15:36  [ТС] #6
Цитата Сообщение от stragger Посмотреть сообщение
Sovershennui, а какие ошибки-то?
попробуй эту строку убрать, здесь это подключение лишнее, да и не совсем корректное
C
1
#include <stdio>
Убрал. Теперь работает лучше, спасибо.
Теперь, когда я ввожу по Цельсию, мне выдает значение по Фаренгейту. Далее написано "для продолжения нажмите любую клавишу". Когда нажимаю, то программа закрывается. Как сделать так, чтобы можно было ввести новый параметр температуры по Цельсию, чтобы получить новый ответ? То бишь, чтобы программа не закрывалась, а повторяла весь цикл заново?
0
stragger
39 / 39 / 2
Регистрация: 05.12.2011
Сообщений: 343
30.07.2013, 15:40 #7
Sovershennui, читать книжку дальше до темы, где разбираются циклы. Думаю полезней будет, если ты сам напишешь этот код.
0
Valentina
68 / 68 / 3
Регистрация: 13.05.2012
Сообщений: 130
30.07.2013, 15:46 #8
Цитата Сообщение от Sovershennui Посмотреть сообщение
Как сделать так, чтобы можно было ввести новый параметр температуры по Цельсию, чтобы получить новый ответ? То бишь, чтобы программа не закрывалась, а повторяла весь цикл заново?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio>
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main(int nNumberofArgs, char* pszArgs[])
{
   int nNCelsius;
   int nNFactor;
   int nFahrenheit;
   char ch;
   do
   {
   cout << " Temperatura po Celsiu ";
   cin >> nNCelsius;
   
   nNFactor = 212 - 32;
 
   
   nFahrenheit = nNFactor * nNCelsius/100 + 32;
   cout << "Temperatura po Farengeitu ";
   cout << nFahrenheit;
   cout<<"\nContinue....(y/n)"<<endl;
   cin>>ch;
   }while(ch=='y');
   system("pause");
   return 0 ;
}
0
Sovershennui
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 22
30.07.2013, 15:55  [ТС] #9
Хорошо, спасибо. Последую вашему совету. Надеюсь, далее будет описание повторения циклов.
Кстати, Valentina , увы, Ваш код ничего не изменил.
0
Rusarch333
7 / 7 / 1
Регистрация: 12.08.2012
Сообщений: 96
30.07.2013, 16:14 #10
Код Валентины - рабочий. Что собственно не так?
0
Sovershennui
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 22
30.07.2013, 16:17  [ТС] #11
Повторюсь: как я ввожу значение по Цельсию, он мне выдает значение по Фаренгейту, а также надпись: "Для продолжения нажмите какую-либо клавишу". После нажатия программа закрывается. Я попросил указать на то, что нужно добавить, чтобы программа не закрывалась, а повторяла цикл, т.е. можно было еще несколько раз ввести значения по Цельсию, чтобы получить по Фаренгейту
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
30.07.2013, 16:32 #12
Цитата Сообщение от Rusarch333 Посмотреть сообщение
Код Валентины - рабочий.
Лично подтверждаю.
Вылет программы после завершения
1
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
30.07.2013, 18:39 #13
Ещё можно так:

C++
1
2
3
4
5
6
7
8
#include <conio.h>
 
int main() {
...
...
...
getch();
}
И перед выходом из программы нужно будет нажать любую клавишу
Это лучше чем
C++
1
system("pause");
Потому что можно писать свой текст, пример (чтоб понятнее было):
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <conio.h>
 
int main() {
std::cout << "Hello, World!" << std::endl;
std::cout << "Enter any key for exit" << std::endl;
getch();
return 0;
}


Добавлено через 44 минуты
Кстати, есть ещё один способ, правда я ним никогда не пользовался, так как думаю что он не очень удобный
C++
1
cin.getline();
0
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
30.07.2013, 18:41 #14
прям таки лучше?
лучше не перегружать программу избыточным включением хидеров и не смешивать плюсы с сями
Цитата Сообщение от Даниил Посмотреть сообщение
#include <iostream>
#include <conio.h>
можно обойтись вместо getch функцией cin.get()
0
Sovershennui
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 22
30.07.2013, 19:04  [ТС] #15
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Лично подтверждаю.
Вложение 295657
Хм. Почему же у меня так не выходит?
Вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio>
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main(int nNumberofArgs, char* pszArgs[])
{
   int nNCelsius;
   int nNFactor;
   int nFahrenheit;
   char ch;
   do
   {
   cout << " Temperatura po Celsiu ";
   cin >> nNCelsius;
   
   nNFactor = 212 - 32;
 
   
   nFahrenheit = nNFactor * nNCelsius/100 + 32;
   cout << "Temperatura po Farengeitu ";
   cout << nFahrenheit;
   cout<<"\nContinue....(y/n)"<<endl;
   cin>>ch;
   }while(ch=='y');
   system("pause");
   return 0 ;
}
Видимо, здесь где-то ошибка. Заново не хочет компилировать. Подскажете?
Вот что написано в журнале компиляции
Компилятор: Default compiler
Выполнение g++.exe...
g++.exe "C:\Users\Stepka.jej\Desktop\raq.cpp" -o "C:\Users\Stepka.jej\Desktop\raq.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:\Users\Stepka.jej\Desktop\raq.cpp:1:17: stdio: No such file or directory
Выполнение завершено
Я, наверное, вас уже совсем замотал
Просто хочется сразу попробовать разобраться
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2013, 19:04
Привет! Вот еще темы с ответами:

Вылет программы при создании объекта - C++
Начал изучать классы с создания класса для работы с массивами, класс должен работать как с одномерными так и двумерными динамическими...

Вылет программы с классом своего стека - C++
Здравствуйте. Вот начинаю изучать ООП и надо написать стек. Набросал чуток кода, написал push() и printStack(). Тестирую их, ошибок явных...

Вылет после ввода первого числа - C++
Почему программа вылетает после того, как ввожу 1 элемент массива? #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; ...

Вылет программы при удалении динамического массива - C++
Писал программу с использованием динамического массива, все компилилось нормально, но в какой-то момент программа просто начала вылетать,...


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

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

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