Хобрук: Ваш путь к мастерству в программировании

Где я должен искать результат в визуальной студии?

Итак, я не программист, но решил изучать C и нашел веб-сайт с отличным материалом (https://www.learn-c.org/). Будучи студентом, я смог получить Visual Studio Enterprise 2017 бесплатно. Как вы понимаете, я плохо разбираюсь ни в C, ни в программировании, ни в VS2017. Для урока 1 на этом сайте я должен создать свою программу Hello_World. В VS2017 я открыл пустой проект, а затем открыл новый файл (Test.c). Я считаю, что мой код правильный, однако, когда я пытаюсь его запустить (Shift + F5), я не вижу «Hello World». На моем экране некоторое время мерцает командная строка. На панели с надписью «Выход» в нижней части VS 2017 я получаю следующее:

1>------ Build started: Project: Project1, Configuration: Debug Win32 ------
1>Test.c
1>Project1.vcxproj -> C:\Users\Fabien\source\repos\Project1\Debug\Project1.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Итак, мой вопрос: где я должен видеть «Hello, World!» ?

#include <stdio.h>
int main(){
printf("Hello World");
return 0;
}

  • Ваша программа работает именно так, как вы ее написали. Он печатает строку вывода, а затем немедленно завершает работу, возвращаясь из main(). Если вы хотите сделать паузу, чтобы вы могли прочитать вывод, вам нужно сделать это. 02.01.2018
  • предупреждение: Visual Studio никогда не была компилятором C в соответствии со стандартом C. Я советую вам учиться с соответствующим компилятором как clang. 02.01.2018
  • Возможный дубликат вывод кода Visual Studio 2017 не отображается 02.01.2018

Ответы:


1

Ваша программа работает правильно, но она выполняется в отдельном окне и закрывается сразу после завершения, поэтому у вас нет возможности увидеть вывод. Вы можете использовать функцию, которая останавливает программу и ожидает ввода, например getchar, например:

#include <stdio.h>
int main() {
    printf("Hello World");
    getchar();
    return 0;
}

таким образом программа будет ждать ввода, а затем закроется.

02.01.2018

2

Shift-F5, если вы не перенастроили клавиши по умолчанию, означает остановить отладку, поэтому я не уверен, почему вы думаете, что это поможет :-)

Нажатие F5 на его собственном запустит ваш код, но в режиме, который означает, что он просто выйдет после завершения, и окно вывода исчезнет. Если вам нужно сделать это таким образом, вы можете просто поставить getchar() перед выходом.

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

Поэтому я считаю предпочтительнее просто использовать Ctrl-F5 для запуска таким образом, чтобы сама среда IDE оставляла окно открытым до тех пор, пока вы не нажмете клавишу:

<Your program output goes here>
Press any key to continue . . .
02.01.2018
Новые материалы

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

Обзор 20 основных и современных методов работы с массивами в JavaScript
Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

Да, но я чувствую необходимость указать, что это или не единственные два.
Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.