textpub.neocities.org . [ записки: обучаюсь C++ ]
Из моих записок про самообучение C++. Оригинальный пост в ЖЖ написан 29.12.2018 г.
Практически во всех учебниках по программированию на C++ под Windows обучение начинается с создания консольных приложений (см. текстовый интерфейс пользователя, интерфейс командной строки). Например, Лафоре начинает с такой программы:
#include <iostream> using namespace std; int main() { cout << "У каждой эпохи свой язык\n"; return 0; }
И это нормально, для начинающего работа с оконным интерфейсом довольно сложна.
Во многих учебниках сборка программы и запуск полученного после сборки исполняемого файла вообще остаются за кадром, либо, как у Лафоре, засунуты в приложения. Это происходит потому, что учебники рассчитаны на десятки лет использования, а компиляторы обновляются каждый год и их разнообразие не позволяет охватить их все.
Поэтому у начинающих сразу возникает масса вопросов. Например, один из самых популярных (на соответствующих форумах ежегодно плодятся подобные темы) после запуска исполняемого файла, полученного от сборки вышеуказанной программы, окно консольного приложения закрывается так быстро, что ученик не успевает увидеть результат работы программы.
Чтобы разобраться в проблеме, нужно понимать, что полученный от сборки исполняемый файл в Windows можно запускать, как минимум, тремя способами: 1) из интегрированной среды разработки; 2) из Проводника Windows; 3) из командной строки. Рассмотрим в обратном порядке.
3. Изначально предполагается, что консольная программа будет запускаться из командной строки. Это следует из самого понятия консольной программы. В разных версиях Windows командную строку можно запустить по-разному и несколькими способами. Например, я запускаю через «Пуск Все программы Стандартные Командная строка». Откроется окно с интерфейсом командной строки. Зная соответствующие команды, нужно перейти в каталог с нашим исполняемым файлом и запустить его. В этом случае никаких проблем возникнуть не должно, после окончания работы программы окно командной строки не закроется, а продолжит ожидать следующих команд. Можно будет видеть результат работы программы.
2. Однако, сейчас пользователи Windows в большинстве привыкли запускать исполняемые файлы из Проводника Windows. В случае запуска исполняемого файла вышеуказанной программы из Проводника Windows откроется окно командной строки, программа сработает и окно командной строки закроется. Это произойдет так быстро, что увидеть результат работы программы не получится. После этого новичок выходит в интернет и быстро находит советы дописать программу так, чтобы она в конце своей работы ожидала от пользователя нажатия любой клавиши на клавиатуре. Например:
#include <iostream>
using namespace std;
int main()
{
cout << "У каждой эпохи свой язык\n";
// ждем, пока пользователь рассмотрит результат работы
// программы и нажмет любую клавишу
system("pause");
return 0;
}
1. На этапе написания и отладки программы удобнее всего запускать полученный от сборки программы исполняемый файл прямо из интегрированной среды разработки. В «Visual Studio Community 2017» это осуществляется с помощью комбинации клавиш Ctrl+F5 или через пункт меню «Отладка Запуск без отладки».
Берем первоначальный вариант текста программы от Лафоре без дописок и добавляем его в качестве файла с расширением .cpp в новый проект (о том, как это сделать, я уже писал).
Если при создании проекта был выбран тип проекта «Пустой проект», то по умолчанию при запуске программа поведет себя так же, как и при запуске из Проводника Windows окно командной строки откроется, программа сработает и окно командной строки закроется так быстро, что результат работы увидеть не удастся.
Чтобы окно командной строки не закрылось сразу, необходимо произвести донастройку в свойствах проекта. Для этого с помощью пункта меню «Проект Свойства» (Alt+F7) откроем окно свойств проекта. В левом меню этого окна выберем пункт «Свойства конфигурации Компоновщик Система». В списке свойств справа от меню выберем свойство «Подсистема» и назначим для него значение «Консоль (/SUBSYSTEM:CONSOLE)». После нажатия кнопки «OK» окно закроется. После этого можно произвести сборку программы и запуск исполняемого файла из среды разработки. Программа при окончании работы подождет от пользователя нажатия любой клавиши и можно будет рассмотреть результат работы программы.
Если же при создании проекта был выбран тип проекта «Консольное приложение Windows», то указанная донастройка свойств проекта не потребуется.