C как закрыть консоль
Перейти к содержимому

C как закрыть консоль

  • автор:

Завершение программы C++

Функция, объявленная exit в , завершает программу C++. Значение, предоставленное в качестве аргумента exit , возвращается операционной системе в качестве возвращаемого кода программы или кода выхода. Принято, чтобы нулевым кодом возврата обозначалось, что программа завершена успешно. Константы EXIT_FAILURE можно использовать, а EXIT_SUCCESS также определенные в , чтобы указать успешность или сбой программы.

Функция abort

Функция abort , объявленная в стандартном формате, включает , завершает программу C++. Разница между exit и abort заключается в том, что exit обработка завершения среды выполнения C++ выполняется (вызывается глобальные деструкторы объектов). abort немедленно завершает программу. Функция abort проходит обычный процесс уничтожения для инициализированных глобальных статических объектов. Также осуществляется обход всей специальной обработки, которая была задана с помощью функции atexit .

Корпорация Майкрософт: по соображениям совместимости Windows реализация abort microsoft может разрешить выполнение кода завершения библиотеки DLL в определенных обстоятельствах. Дополнительные сведения см. в разделе abort .

Функция atexit

Используйте функцию atexit , чтобы указать действия, выполняемые до завершения программы. Перед выполнением функции выхода не инициализированы глобальные статические объекты, инициализированные перед вызовом atexit .

return оператор in main

Инструкция return позволяет указать возвращаемое значение из main . Оператор return в main первую очередь действует как любая другая return инструкция. Все автоматические переменные уничтожаются. main Затем вызывает возвращаемое exit значение в качестве параметра. Рассмотрим следующий пример:

// return_statement.cpp #include struct S < int value; >; int main() < S s< 3 >; exit( 3 ); // or return 3; > 

return Операторы exit , описанные в предыдущем примере, имеют аналогичное поведение. Как завершить программу, так и вернуть значение 3 операционной системе. Разница заключается в том, что exit не уничтожает автоматическую переменную s , а return оператор делает.

Как правило, C++ требует, чтобы функции, имеющие возвращаемые типы, отличные от void возвращаемого значения. Функция является исключением. Она main может завершиться без инструкции return . В этом случае он возвращает значение, зависящее от реализации, в вызывающий процесс. (По умолчанию MSVC возвращает значение 0.)

Уничтожение потоков и статических объектов

При вызове exit напрямую (или при вызове после оператора из main ), объекты потоков, связанные с текущим потоком return , уничтожаются. Затем статические объекты уничтожаются в обратном порядке их инициализации (после вызовов функций, указанных в , если таковые имеются atexit ). В следующем примере показано выполнение такого процесса инициализации и удаления.

Пример

В следующем примере статические объекты sd1 создаются и sd2 инициализированы перед записью main . После завершения работы этой программы с помощью инструкции return сначала sd2 уничтожается, а затем sd1 . Деструктор класса ShowData закрывает файлы, связанные с этими статическими объектами.

// using_exit_or_return1.cpp #include class ShowData < public: // Constructor opens a file. ShowData( const char *szDev ) < errno_t err; err = fopen_s(&OutputDev, szDev, "w" ); >// Destructor closes the file. ~ShowData() < fclose( OutputDev ); >// Disp function shows a string on the output device. void Disp( char *szData ) < fputs( szData, OutputDev ); >private: FILE *OutputDev; >; // Define a static object of type ShowData. The output device // selected is "CON" -- the standard output device. ShowData sd1 = "CON"; // Define another static object of type ShowData. The output // is directed to a file called "HELLO.DAT" ShowData sd2 = "hello.dat"; int main()

Другой способ написания этого кода заключается в объявлении ShowData объектов с блоком область, который неявно уничтожает их при выходе из область:

C как закрыть консоль

закрытие консоли
в чем допущена оплошность:требуется ввести размер матрицы,вводим допустим 5,происходит вывод на.

закрытие консоли
задание:Создать класс матрица Данный класс содержит указатель на float, размер строк и столбцов и.

Закрытие консоли
Дана непустая последовательность вещественных чисел оканчивающаяся числом 1000.

Как запретить закрытие консоли?
Как запретить закрытие консоли? Подсказали, что для этого нужно использовать функцию.

C как закрыть консоль

1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Завершение программы C++

Функция, объявленная exit в , завершает программу C++. Значение, предоставленное в качестве аргумента exit , возвращается операционной системе в качестве кода возврата программы или кода выхода. Принято, чтобы нулевым кодом возврата обозначалось, что программа завершена успешно. Вы можете использовать константы EXIT_FAILURE , а EXIT_SUCCESS также определенные в , чтобы указать на успех или сбой программы.

Выдача инструкции return main из функции эквивалентна вызову exit функции с возвращаемым значением в качестве аргумента.

Функция abort

Функция abort , также объявленная в стандартном файле , завершает программу C++. Разница между exit и abort заключается в том, что exit позволяет выполнять обработку завершения времени выполнения C++ (вызов вызовов деструкторов глобальных объектов), но abort немедленно завершает программу. Функция abort обходит обычный процесс уничтожения для инициализированных глобальных статических объектов. Также осуществляется обход всей специальной обработки, которая была задана с помощью функции atexit .

Функция atexit

Используйте функцию atexit , чтобы указать действия, выполняемые до завершения программы. Перед выполнением функции выхода не инициализированы глобальные статические объекты, не инициализированные до того, как вызов atexit будет уничтожен.

return оператор in main

Выполнение инструкции return из main функционально эквивалентно вызову exit функции. Рассмотрим следующий пример:

Операторы exit и return инструкции в предыдущем примере функционально идентичны. Как правило, C++ требует, чтобы функции, имеющие возвращаемые типы, отличные от void возвращаемого значения. Функция main является исключением; она может завершиться без инструкции return . В этом случае возвращается значение, зависящее от реализации, в вызывающий процесс. Инструкция return позволяет указать возвращаемое значение из main .

Уничтожение статических объектов

При вызове exit или выполнении инструкции return из main статических объектов удаляются в обратном порядке их инициализации (после вызова atexit , если он существует). В следующем примере показано выполнение такого процесса инициализации и удаления.

Пример

В следующем примере статические объекты sd1 sd2 создаются и инициализируются перед вводом main . После завершения работы этой программы с помощью инструкции return сначала sd2 уничтожается, а затем sd1 . Деструктор класса ShowData закрывает файлы, связанные с этими статическими объектами.

Другой способ записать этот код — объявить объекты ShowData с областью видимости блока, в результате чего они будут удаляться при выходе из области.

Похожие публикации:

  1. 0x80240017 как исправить
  2. 1с как установить цену номенклатуры
  3. 5036 что значит
  4. Acsigncore16 как удалить

C++. Как не отображать завершение процесса в консоли?

gbg

Чтобы автоматически закрывать консоль при остановке отладки, включите параметр «Сервис» ->»Параметры» ->»Отладка» -> «Автоматически закрыть консоль при остановке отладки».

Ответ написан более трёх лет назад
Нравится 2 4 комментария

magggi

Mago m @magggi Автор вопроса

но мне не нужно закрывать консоль, там так, программа работает как надо все выводит, есть результат и вот это то что на фото, можно ли это не отоброжать?

hePPer

не в отладке это не должно выводиться.
Как запускаете файл, что такое сообщение выводится?

magggi

Mago m @magggi Автор вопроса
не в отладке не выводится, все нормально, только в отладке такое

magggi

Mago m @magggi Автор вопроса
ну я так понял изменить нельзя, все же спасибо!)
Ответы на вопрос 1

resolut1123

Алексей @resolut1123

Нужно прописать в конце программы system(«pause»); Потом нужно собрать решение, потому что внутри IDE консоль удерживается и насколько знаю даже не закрывается командами exit(0). Если у тебя Visual Studio, Нажми на «Сборка — собрать решение», потом перейди в папку с проектом и в Debug будет exe файл твоей программы.

Создание и запуск проекта консольного приложения C++

Вы создали проект консольного приложения C++ и ввели код. Теперь вы можете выполнить сборку приложения и запустить его в Visual Studio. Затем запустите его как автономное приложение из командной строки.

Необходимые компоненты

  • Установите и запустите на своем компьютере Visual Studio с рабочей нагрузкой Разработка классических приложений на C++. Если установка еще не выполнена, следуйте инструкциям в статье Установка поддержки C++ в Visual Studio.
  • Создайте проект Hello, World!» По умолчанию он содержит код для печати Hello World! . Если вы еще не сделали этого, выполните действия, описанные в разделе Создание проекта консольного приложения С++.

Если Visual Studio выглядит следующим образом, можно приступать к сборке и запуску приложения:

Screenshot of Visual Studio showing the Hello World source code in the editor.

Сборка и запуск кода в Visual Studio

  1. Для сборки проекта выберите в меню Сборка пункт Собрать решение. Окно Вывод отображает результаты процесса сборки.
  2. Чтобы запустить этот код, в строке меню выберите Отладка и Запуск без отладки. Открывается окно консоли, и запускается ваше приложение. При запуске консольного приложения в Visual Studio система выполняет код, а затем выводит сообщение «Нажмите любую клавишу, чтобы продолжить. . .», чтобы вы могли просмотреть выходные данные.

Поздравляем! Вы создали свое первое консольное приложение «Hello, world!» в Visual Studio! Нажмите любую клавишу, чтобы закрыть окно консоли и вернуться в редактор Visual Studio.

Выполнение кода в командном окне

Обычно консольные приложения запускаются из командной строки, а не в Visual Studio. После создания приложения Visual Studio его можно запустить из командного окна. Вот как можно найти и запустить новое приложение в окне командной строки.

  1. В обозревателе решений выберите решение HelloWorld (а не проект HelloWorld) и щелкните правой кнопкой мыши, чтобы открыть контекстное меню. Выберите Открыть папку в проводнике, чтобы открыть окно проводника в папке решения HelloWorld.
  1. В окне проводник откройте папку Debug . Эта папка содержит файлы приложения HelloWorld.exe и отладки. Удерживайте клавишу SHIFT и щелкните правой кнопкой мыши HelloWorld.exe , чтобы открыть контекстное меню. Выберите команду Копировать как путь, чтобы скопировать путь к приложению в буфер обмена.
  1. В окне проводник откройте x64 папку и затем папку Debug . Эта папка содержит файлы приложения HelloWorld.exe и отладки. Удерживайте клавишу SHIFT и щелкните правой кнопкой мыши HelloWorld.exe , чтобы открыть контекстное меню. Выберите команду Копировать как путь, чтобы скопировать путь к приложению в буфер обмена.
  1. Чтобы открыть окно командной строки, нажмите Windows + R, чтобы открыть диалоговое окно Выполнить. Введите cmd.exe в текстовом поле Открыть, а затем выберите ОК для запуска окна командной строки.
  2. В окне командной строки щелкните правой кнопкой мыши, чтобы вставить путь к приложению в командную строку. Нажмите клавишу ВВОД, чтобы запустить приложение.

Поздравляем! Вы создали и запустили консольное приложение в Visual Studio.

Дальнейшие действия

После создания и запуска этого простого приложения можно приступать к более сложным проектам. Дополнительные сведения см. в разделе Использование интегрированной среды разработки Visual Studio для разработки приложений для настольных систем на языке C++. В нем содержатся более подробные пошаговые руководства, посвященные возможностям Microsoft C++ в Visual Studio.

Руководство по устранению неполадок

Здесь приведены решения распространенных проблем, которые могут возникнуть при создании первого проекта C++.

Сборка и запуск кода в Visual Studio: проблемы

Если в редакторе исходного кода отображаются красные волнистые линии, то сборка может содержать ошибки или предупреждения. Убедитесь, что код соответствует примеру в написании, пунктуации и регистре.

Выполнение кода в командном окне: проблемы

Если путь, показанный в проводник заканчивается \HelloWorld\HelloWorld , вы открыли проект HelloWorld вместо решения HelloWorld. Вы будете путать папку Debug , которая не содержит ваше приложение. Перейдите на уровень вверх в проводнике, чтобы открыть папку решения — первый HelloWorld в пути. Эта папка также содержит папку Debug , и вы найдете там свое приложение.

Вы также можете перейти в папку решения Debug в командной строке, чтобы запустить приложение. Приложение не будет запускаться из других каталогов, если не указан путь к приложению. Однако вы можете скопировать приложение в другой каталог и запустить его из него. Его также можно скопировать в каталог, указанный PATH переменной среды, а затем запустить его из любого места.

Если путь, показанный в проводник заканчивается \HelloWorld\HelloWorld , вы открыли проект HelloWorld вместо решения HelloWorld. Вы будете путать папку x64\Debug , которая не содержит ваше приложение. Перейдите на уровень в проводник, чтобы перейти к папке решения, первой HelloWorld в пути. Эта папка также содержит папку x64\Debug , и вы найдете там свое приложение.

Вы также можете перейти в папку решения x64\Debug в командной строке, чтобы запустить приложение. Приложение не будет запускаться из других каталогов, если не указан путь к приложению. Однако вы можете скопировать приложение в другой каталог и запустить его из него. Его также можно скопировать в каталог, указанный PATH переменной среды, а затем запустить его из любого места.

Если в контекстном меню отсутствует параметр Копировать как путь, закройте меню, а затем удерживайте нажатой клавишу SHIFT при повторном открытии. Эта команда предназначена только для удобства. Можно также скопировать путь к папке из панели поиска проводника и вставить его в диалоговое окно Выполнить, а затем ввести имя исполняемого файла в конце. При этом потребуется чуть больше действий по вводу текста, но результат будет тем же.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *