exe-файлы консольных приложений С++ [дубликат]

158
18 июля 2019, 08:50

На данный вопрос уже ответили:

  • Консоль Windows при запуске main.exe моментально закрывается 2 ответа

Есть следующее консольное приложение

  // Подключение заголовочного файла для работы с текстом
    #include <iostream>
    // Подключение заголовочного файла для переключения консоли на
     //русский язык  
      #include <clocale>
     // Подключение заголовочного файла для создания объекта класса vector
     #include <vector>
     //Использование пространства имен std 
      using namespace std;
      // Объявление главной функции
      int main(void){
      // Переключение консоли на русский язык
      char *locale = setlocale(LC_ALL, "");
 cout  << "Массив А состоит из n целых чисел." << endl
 << "Программа выполняет сортировку массива А по возрастанию." 
 << endl
 << "Введите n..." << endl;
  // Объявление целочисленной переменной n 
  int n;
  //Запись значения в переменную
   cin >> n;
    //Объявление переменной для хранения индекса элемента
    int k;
    /* Объявление динамического массива на n целых чисел (с помощью объекта 
     класса vector) */
     vector <int> A (n);
     // Просьба заполнить массив А целыми числами
      cout << "Заполните массив А целыми числами" << endl;
      // Заполнение массива с клавиатуры с помощью цикла for
      for (int i = 0; i < n; i++) {
      /* Присваивание переменной k значения i+1 (i — целочисленная 
      переменная со значениями от 0 до n (индекс элемента массива). 
      Добавление к i единицы т.к. индексация элементов массива начинается с 
      0.*/
      k = (i+1);
       // Вывод сообщения с просьбой ввести элемент массива
        cout << k << " элемент массива =";
         // Запись значения, введенного с клавиатуры, в элемент массива с // 
         индексом i
         cin >> A[i];
         }
        // Вывод сообщений о действиях программы
        cout << "Сортировка массива выбором по возрастанию" << endl 
        << endl;    
         cout << "Вывод массива до сортировки" << endl;
          // Цикл для вывода неотсортированного массива в консоль   
         for (int i = 0; i < n; i++) {
         cout << A[i] << ' ';
         }
         // пропуск строки.
         cout << endl << endl;
         // Цикл для перебора элементов массива.
        for (int i = 0; i < n-1; i++) {
// Объявление переменной для хранения индекса минимального  
// элемента.  Присвоение этой переменной значения i.
int mindex = i;
// Объявление переменой для временного хранения значения    
 // элемента массива с индексом i.
int tmp = 0;
    // Цикл для сравнения значений элементов массива с      
    // индексами i и j (i+1). 
    for (int j=i+1; j < n; j++) {
        // Проверка условия 
        if (A[j] < A[mindex]) {
        // Присвоение переменной mindex значения                // переменной j. 
        mindex = j;
        }
    }

// Если значение переменной i (индекс текущего элемента           
  //массива) не равно значению переменной mindex, элементы с        
  //соответствующими индексами меняются местами.  
if (i != mindex) {
tmp = A[i];
A[i] = A[mindex];
A[mindex] = tmp;
}
}
// Вывод сообщения в консоль.
   cout << "Вывод массива после сортировки" << endl;
   // Цикл для вывода элементов массива после сортировки.
   for (int i = 0; i < n; i++) {
    cout << A[i] << ' ';
   }
   // Завершение работы программы.
   return 0;
   }

При компиляции и запуске exe-файла через командную строку, оно работает корректно, но при запуске скомпилированного exe-файла с помощью мыши, программа доходит до последнего элемента массива, а после ввода этого элемента, exe-файл закрывается. В чем может быть проблема, и как мне сделать exe рабочим? Помогите разобраться, спасибо.

Answer 1

Добавьте system("pause"); либо _getch();(conio.h) перед return 0; что-бы программа сама не закрывалась, а ожидала нажатия любой клавиши.

READ ALSO
Как в C++ удалить экземпляр класса?

Как в C++ удалить экземпляр класса?

Создаю указатель на экземпляр класса, вызываю конструктор, переменная "a" содержит число 2Вызываю деструктор (в котором это "a" должно стать...

115
Возможно ли наследование class &lt;---&gt; struct в c++?

Возможно ли наследование class <---> struct в c++?

Насколько я понимаю, они оба поддерживают наследование, оба могут содержать поля и функции, оба могут содержать конструктор и деструктор,...

145
OverflowError: Python int too large to convert to C long

OverflowError: Python int too large to convert to C long

Когда пытаюсь выполнить скрипт bimbampy выходит эта ошибка:

138