Мой код Visual Studio не будет правильно выполнять мой код - PullRequest
0 голосов
/ 05 апреля 2020

Я не могу правильно запустить / отладить мой код в VS Code, используя язык C. Я установил пакет C / C ++ на VS C, Mingw и применил путь для Mingw. Все мои файлы работают в формате c.

В VS C происходит сбой только последней части моего кода, когда я запускаю этот же код на компиляторах веб-сайтов, он работает!

Вот мой код:

#include <stdio.h>

int main(void) {
    int num1;
    int num2;

    printf("Enter a number: ");
    scanf("%d", &num1);

    printf("Enter another number: ");
    scanf("%d", &num2);

    printf("Answer: %d ", num1 + num2);
    return 0;
}

Этот последний printf - это место, где VS C просто закрывает окно вывода, поэтому я никогда не вижу конечного результата моего кода , У кого-нибудь есть какие-то решения, чтобы это исправить? Это будет с благодарностью!

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020

Когда вы запускаете консольную программу из Visual Studio, она открывает окно терминала, запускает программу и окно терминала закрывается автоматически при выходе из программы. Это классическая c проблема с платформой Microsoft Windows, о которой они, похоже, не заботятся, несмотря на то, что миллионы начинающих ie программистов, как и вы, сталкиваются с той же проблемой.

Если вы откроете окно терминала самостоятельно, запустив команду CMD из меню «Пуск», вы сможете запустить вашу программу вручную после изменения текущего каталога на каталог двоичного файла программы.

Чтобы предотвратить немедленное закрытие окна терминала при работая непосредственно из Visual Studio, вы должны добавить 2 getchar(); операторов перед возвратом из main(), чтобы дождаться ввода данных пользователем и получить возможность увидеть результаты. Простого чтения одного байта с getchar() будет недостаточно, поскольку он будет просто читать ожидающий перевод новой строки, введенный пользователем в ответ на второе приглашение.

Также обратите внимание, что предпочтительно выводить завершающий перевод новой строки, чтобы вывод корректно сбрасывается в некоторых устаревших системах:

printf("Answer: %d\n", num1 + num2);

Вот модифицированная программа, которую вы можете проверить:

#include <stdio.h>

int main(void) {
    int num1 = 0, num2 = 0;

    printf("Enter a number: ");
    scanf("%d", &num1);

    printf("Enter another number: ");
    scanf("%d", &num2);

    printf("Answer: %d\n", num1 + num2);

    getchar(); // read the pending newline
    getchar(); // read at least another byte from the user.

    return 0;
}
0 голосов
/ 05 апреля 2020

Запустите вашу программу из консоли:

  1. В поле поиска введите cmd
  2. cd \path_to_your_executable
  3. Запустите вашу программу.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...