cpp

Предотвращение закрытия окна консоли

До сих пор мы запускали программу в командной строке. Однако программу можно запустить и двойным щелчком мыши на значке файла с программой. Если мы попробуем это сделать сейчас с программой main.exe из предыдущего раздела, то окно консоли откроется, а затем сразу закроется. Чтобы окно не закрывалось необходимо вставить инструкцию, ожидающую ввод от пользователя. Например, используем функцию Scan() (листинг 1.7).

Листинг 1.7. Предотвращение закрытия окна консоли

package main

import "fmt"

func main() {
   fmt.Println("Hello, world!")
   fmt.Println("Для закрытия окна нажмите любую клавишу + <Enter> ... ")
   s := ""
   fmt.Scan(&s)
}

При использовании функции Scan() следует учитывать один нюанс. Если в программе производился ввод данных, то в потоке могут остаться символы. В этом случае эти символы будут автоматически переданы функции Scan() и окно консоли сразу закроется.

Можно также просто вызвать функцию Scanf(). В этом случае достаточно будет нажать клавишу <Enter>, но любой ввод в программе приведет к закрытию окна:

fmt.Scanf("\n")

Если нужно предотвратить закрытие окна только на этапе отладки программы, то можно создать вспомогательный файл с расширением bat и внутри него запускать программу. После инструкции запуска программы вставляем команду pause, которая выведет строку Для продолжения нажмите любую клавишу и будет ожидать нажатия клавиши. Пример:

@echo off
title Запуск программы main.exe
echo Результат:
@echo.
main.exe -param1 -param2
@echo.
@echo.
pause

Как видно из примера, после названия программы мы можем передать параметры. Если программа main.exe расположена в другом каталоге, то перед именем программы следует указать путь к ней.

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp