Как убедиться, что консоль не закрывается сразу при запуске кода? - PullRequest
4 голосов
/ 23 марта 2020

Я пытаюсь научиться C программированию, но когда я запускаю свой код cmd, окно сразу закрывается, не давая мне изменения, чтобы увидеть, напечатала ли программа результат, к которому я стремился.

Я кодирую C на VS-Code, используя несколько расширений. Есть ли настройка / расширение / фрагмент кода или что-то, что я могу сделать, чтобы он не закрывался сразу?

Спасибо!

Ответы [ 5 ]

2 голосов
/ 23 марта 2020

Это странная особенность Visual Studio.

Если вы запускаете консольное приложение без отладки (ctrl-F5), тогда Visual Studio автоматически оставляет консоль открытой для вас, когда программа завершается.

Это не происходит при запуске в отладчике (F5) - предполагается, что вы можете оставить процесс открытым для себя с точкой останова где-то.

2 голосов
/ 23 марта 2020

Вы можете использовать getchar ():

#include <stdio.h>
int main()
{
    printf("Hello, World! (presse enter to leave)\n");
    getchar (); //<-- presse enter to leave
    return 0;   
}
2 голосов
/ 23 марта 2020

Самый простой (и самый распространенный) способ сделать это - добавить строку system("pause"); непосредственно перед оператором return 0; в вашей функции main:

#include <stdio.h>
#include <stdlib.h> // This header defines the "system()" function
                    // For C++ builds, #include <iostream> will suffice

int main()
{
    printf("Hello, World!\n");
    system("pause");
    return 0;
}

Этот вызов произведет подскажите и дождитесь нажатия клавиши от пользователя. Точное отображаемое сообщение может отличаться в зависимости от компилятора и / или платформы, но в Visual Studio и MSVC это сообщение:

Нажмите любую клавишу для продолжения. , .

0 голосов
/ 23 марта 2020

Я не могу комментировать, поэтому я делаю быстрый ответ. VS не использовал, чтобы оставаться открытым, когда программа была закончена. Вы должны были использовать system.("PAUSE");, чтобы держать его открытым. Но VS изменил это, поэтому, когда основная функция возвращается, она останавливает командную строку для вас. Большинство IDE не работают таким образом, и работа вне IDE не будет работать таким образом, без какого-либо дополнительного вмешательства в ваш код, например system.("PAUSE");.

0 голосов
/ 23 марта 2020

В C++ это может быть так просто:

#include <iostream>

int main()
{
    std::cout << "Press any key to exit.\n";
    std::cin.ignore();
    return 0;
}

В C, я бы go с ответом Ландсталькера .

Или установите точку останова (F9 по умолчанию) в последнем операторе (return 0;), а затем продолжите (F5 по умолчанию), когда вы хотите выйти из своей программы.

...