Stdio h c как подключить visual studio
Препроцессор является обязательным компонентом компилятора языка Си. Препроцессор обрабатывает исходный текст программы до ее непосредственной компиляции. Результатом работы препроцессора является полный текст программы, который передается на компиляцию в исполняемый файл.
Мы можем использовать следующие директивы:
Рассмотрим основные из этих директив.
Например, если нам надо задействовать в приложении консольный ввод-вывод с помощью функций printf() или scanf() , то нам надо подключить файл "stdio.h", который содержит определение этих функций:
При выполнении этой директивы препроцессор вставляет текст файла stdio.h. Данный файл еще называется заголовочным. Заголовочные файлы содержат прототипы функций, определения и описания типов и констант и имеют расширение .h .
Поиск файла производится стандартных системных каталогах. Вообще есть стандартный набор встроенных заголовочных файлов, который определяется стандартом языка и которые мы можем использовать:
assert.h : отвечает за диагностику программ
complex.h : для работы с комплексными числами
ctype.h : отвечает за преобразование и проверку символов
errno.h : отвечает за проверку ошибок
fenv.h : для доступа к окружению, которое управляет операциями с числами с плавающей точкой
float.h : отвечает за работу с числами с плавающей точкой
inttypes.h : для работы с большими целыми числами
iso646.h : содержит ряд определений, которые расширяют ряд логических операций
limits.h : содержит предельные значения целочисленных типов
locale.h : отвечает за работу с локальной культурой
math.h : для работы с математическими выражениями
setjmp.h : определяет возможности нелокальных переходов
signal.h : для обработки исключительных ситуаций
stdalign.h : для выравнивания типов
stdarg.h : обеспечивает поддержку переменного числа параметров
stdatomic.h : для выполнения атомарных операций по разделяемым данным между потоками
stdbool.h : для работы с типом _Bool
stddef.h : содержит ряд вспомогательных определений
stdint.h : для работы с целыми числами
stdio.h : для работы со средствами ввода-вывода
stdlib.h : содержит определения и прототипы функций общего пользования
stdnoreturn.h : содержит макрос noreturn
string.h : для работы со строками
tgmath.h : подключает math.h и complex.h плюс добавляет дополнительные возможности по работе с математическими вычислениями
threads.h : для работы с потоками
time.h : для работы с датами и временем
uchar.h : для работы с символами в кодировке Unicode
wchar.h : для работы с символами
wctype.h : содержит дополнительные возможности для работы с символами
Однако стоит отметить, что в различных средах к этому набору могут добавляться дополнительные встроенные заголовочные файлы для тех или иных целей, например, для работы с графикой.
Кроме стандартных заголовочных файлов мы можем подключать и свои файлы. Например, в той же папке, где находиться главный файл программы, определим еще один файл, который назовем main.c . Определим в нем следующий код:
Здесь просто определена одна переменная. Теперь подключим этот файл в программу:
При подключении своих файлов их имя указывается в кавычках. И несмотря на то, что в программе не определена переменная number, она будет браться из подключенного файла main.c. Но опять же отмечу, важно, что в данном случае файл main.c располагается в одной папке с главным файлов программы.
В то же время данный способ прекрасно работает в GCC. Но для разных сред программирования способ подключения файлов может отличаться. Например, в Visual Studio мы получим ошибку. И более правильный подход будет состоять в том, что определить объявление объекта (переменной/константы) или функции в дополнительном заголовочном файле, а определение объекта или функции поместить в стандартный файл с расширением .c .
Например, в нашем в файле main.c уже есть определение переменной number. Теперь в ту же папку добавим новый файл main.h - файл с тем же названием, но другим расширением. И определим в main.h следующий код:
Ключевое слово extern указывает, что данный объект является внешним. И в этом случае мы могули бы его подключить в файл исходного кода:
Этот пример также будет работать в GCC, однако как уже было рассмотрено выше, подключение файла main.h для GCC необязательно.
Если разработка ведется в Visual Studio , то определение объекта не надо подключать исходный файл:
Несмотря на то, что здесь явным образом не подключается файл main.c, но при трансляции Visual Studio через заголовочный файл main.h сможет подключить находящийся в той же папке файл main.c.
I found questions for the issue I'm having, but none of the solutions worked for me. I'm asking a new question instead of adding a comment to an existing question. I developed in C++ years ago, but this is the first I have tried to build a c++ program on Windows 10 with VS 2017 Community edition.
I installed Visual Studio 2017 community edition and created a blank C++ console project. When I try to build I get
fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory
I went back to the installer and the Windows 10 SDK is checked: Windows 10 SDK (10.0.16299.0) for Desktop C++
My VC include folder is set to: $(VC_IncludePath);$(WindowsSDK_IncludePath);
Which evaluates to: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\atlmfc\include C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\include C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt C:\Program Files (x86)\Windows Kits\8.1\Include\um C:\Program Files (x86)\Windows Kits\8.1\Include\shared C:\Program Files (x86)\Windows Kits\8.1\Include\winrt
Where should stdio.h and the rest of the C and C++ standard includes be?
If I comment out stdio.h, and try to include I get 1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.11.25503\include\crtdefs.h(10): fatal error C1083: Cannot open include file: 'corecrt.h': No such file or directory
If I comment out all includes, the linker can't find 'ucrtd.lib
In the project setup for Windows SKD, the project has 8.1. If I try to change it to 10, I get "The SDK version was not found".
If I right click on the solution and select "Retarget solution", the only choice is 8.1.
So my question is where should the headers be? This system does have older Visual studio's installed.
I am trying to build a solution on Visual Studio Community 2017, but I keep getting the error "Cannot open include file: 'stdio.h' ".
I've read through several similar questions, but I still can't fix this problem. It looks like the stdio.h file is called in the stdafx.h file. Below are more details. Any suggestions?
System details:
- Windows 10
- Visual Studio Community 2017 v.15.2 (26430.6) -- Installed Desktop Development with C++ (Screenshot: Installation list)
Step 1: I wrote the famous Hello, World! program in C++.
Step 2: I clicked on Build → Build Solution.
Problem: 'stdio.h': No such file or directory. Full Error:
Troubleshooting details and things I've tried:
Configuration Properties* → VC++ Directories Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
Code in stdafx.cpp file:
Code in stdafx.h file:
Tried: I tried removing the last two lines, but then I got more errors.
Well, start by removing the stdafx.h include since it is non-standard and complete unnecessary in VS2017.
Either way this is actually a bit weird, as
@PaulStelian if that's the case, perhaps my error was mostly caused by my Windows SDK install not working well with my Visual Studio install. See answer below.
14 Answers 14
I got same problem with a project porting from Visual Studio 2013 to Visual Studio 2017.
Fix: change Properties → General → Windows SDK Version to 10
That worked fo me. Thanks! I would also add that these properties can be reached by right clicking on the project in the solution explorer.
I had the same problem after changing nothing at all in the project. I would assume maybe something to do with windows updates? The version that was selected was 10.something but there was a never one available and that one worked. I assume that this new one used to not be there back when it worked.
On Microsoft Visual Studio Community 2017 15.7.1 I don't have "Windows SDK Version". However, right-clicking on solution and doing "Retarget solution" worked.
Faced the problem of missing stdlib.h and stdio.h (and maybe more) after installing VS2017 Community on a new computer and migrating a solution from VS2013 to VS2017.
Used @Maxim Akristiniy's proposal, but still got error message regarding toolset compatibility. However VS itself suggested to do solution retarget by right-clicking on the solution in Solution Explorer, then selecting Retarget solution from the menu and the updated Windows SDK Version from the drop-down list.
Now my projects build w/o a problem.
Note that you may need to make the project your startup project for the retargeting to catch.
I've noticed (depressingly) that sometimes one has to exit Visual Studio and restart it after any of this fiddling.
On Microsoft Visual Studio Community 2017 15.7.1 I don't have "Windows SDK Version" as mentioned in the top-vote-getting answer. However, your answer worked fine and I didn't have to restart anything.
There are three ways to solve this issue.
Reinstall Visual Studio
This also worked for me, because I realized that maybe there was something wrong with my Windows SDK. I was using Windows 10, but with Windows SDK 8.1. You may have this problem as well.
Steps: Open Visual Studio Installer > Click on the three-lined Menu Bar > Uninstall > Restart your computer > Open Visual Studio Installer > Install what you want, but make sure you install only the latest Windows SDK 10, not multiple ones nor the 8.1.
The first time I installed Visual Studio, I would get an error stating that I needed to install Windows SDK 8.1. So I did, through Visual Studio Installer's Modify option. Perhaps this was a problem because I was installed it after Visual Studio was already installed, or because I needed SDK 10 instead. Just to be safe I did a complete reinstall.
Мы можем по отдельности использовать текстовый редактор и компилятор, вручную компилировать и запускать программу в консоли или терминале, однако более удобный способ представляет использование различных сред разработки или IDE. Они, как правило, содержит встроенный текстовый редактор, имеет связь с компилятором, позволяя скомпилировать и запустить программу по одному клику мыши, а также еще множество разных вспомогательных возможностей.
После загрузки и запуска установщика Visual Studio в нем необходимо отметить пункт "Разработка классических приложений на C++":
Выбрав все необходимые пункты, нажмем ОК для запуска установки. После установки Visual Studio создадим первый проект. Для этого откроем Visual Studio. На стартовом экране выберем тип Empty Project для языка C++:
На следующем экране в поле для имени проекта дадим проекту имя HelloApp и также можно указать расположение проекта. И затем нажмем на Create для создания проекта.
Если в VS уже открыт какой-нибудь проект, то можно содать новый проект для C через меню File (Файл) -> New (Создать) -> Project. (Проект) и дальше повторить те же действия.
После этого Visual Studio создаст пустой проект. Добавим в него текстовый файл для набора исходного кода. Для этого в окне Solution Explorer (Обозреватель решений) нажмем правой кнопкой мыши на узел Source Files и в контекстом меню выберем Add -> New Item. :
Затем нам откроется окно для добавления нового элемента:
Здесь нам надо выбрать пункт C++ File(.cpp) , а внизу окна укажем для файла имя Hello.c . Как правило, исходные файлы на Си имеют расширение .с . Оно указывает, что этот файл содержит исходный код на языке С, и он будет обрабатываться соответствующим компилятором.
После добавления файла изменим опции проекта. Для этого перейдем к пункту меню Project -> Properties
Сначала в свойствах проекта установим, что это будет консольное приложение. Для этого перейдем к пункту Linker ->System и далее для поля SubSystem установим значение Console(/SUBSYSTEM:CONSOLE) , выбрав нужный элемент в списке:
После установки этого значения нажмем на кнопку "Применить", чтобы новые настройки конфигурации вступили в силу.
Также в окне свойств проекта в левой части перейдем к секции С/С++ и далее к пункту Advanced:
В правой части окна для поля Compile As установим значение Compile as C Code (/TC) . Тем самым мы говорим, чтобы по умолчанию исходный код компилировался именно как код С, а не С++. После установки этой опции нажмем на кнопку "Применить".
После добавления файла проект будет иметь следующую структуру:
Вкратце пробежимся по этой структуре. Окно Solution Explorer содержит в решение. В данном случае оно называется HelloApp. Решение может содержать несколько проектов. По умолчанию у нас один проект, который имеет то же имя - HelloApp. В проекте есть ряд узлов:
External Dependencies : отображает файлы, которые используются в файлах исходного кода, но не являются частью проекта
Header Files : предназначена для хранения заголовочных файлов с расширением .h
Resource Files : предназначена для хранения файлов ресурсов, например, изображений
Source Files : хранит файлы с исходным кодом
Теперь определим в файле Hello.c простейший код, который будет выводить строку на консоль:
Здесь использован весь тот код, который был рассмотрен в предыдущих темах про компиляцию с помощью GCC.
Теперь запустим программу. Для этого в Visual Studio нажмем на сочетание клавиш Ctrl+F5 или выберем пункт меню Debug -> Start Without Debugging :
Затем в папке Debug в проекте мы можем увидеть скомпилированный файл exe, который мы можем запускать независимо от Visual Studio:
В данном случае файл HelloApp.exe как раз и представляет скомпилированный исполняемый файл. Кроме этого файла в той же папке автоматически генерируются два вспомогательных файла:
HelloApp.ilk : файл "incremental linker", который используется компоновщиком для ускорения компоновки
Отсутствие библиотеки, необходимой для записи в файл
Добрый день/вечер, столкнулся с проблемой при работе в VScode. Сразу хотелось бы отметить, что на.
Написать код на Си используя библиотеки: stdio.h,stdlib.h,time.h,locale.h
3. При выборе места строительства жилого комплекса при металлургическом комбинате необходимо.
Отсутствие библиотеки
Написал простую прогу с использование бд access. на одном компе, где установлен офис все работает.
Что за невероятный бред? Откуда это берется, интересно?
Во-первых, показать реальный код, а не рассказывать тут прохладные истории о коде.
Во-вторых, проверить, установлена ли Windows SDK.
CoderHuligan, программировать на Си - это само по себе мазохизм
а студия прекрасно с ним работает для всех желающих
Не совсем понятно сравнение это компилятора (gcc), с IDE (Visual Studio), но тем не менее: а в чем же заключается "более вменяемость" gcc?
Программисты всегда спорят о том, какой язык программирования лучше.
Попробуйте склонить программистов, привыкших работать на С, к работе
с Pascal, и они пошлют вас подальше. Попробуйте заставить специалистов
по Pascal обратить хоть какое-то внимание на Basic, и они обязательно
объяснят, куда вам пойти. И даже не думайте доказывать фанам FORTH,
что это - совершенно непонятный язык и не приспособлен для какой-
либо серьёзной работы: в лучшем случае вас просто прогонят.
Я стараюсь избегать всех подобных аргументов в спорах. Они кажутся
мне просто смешными. Представьте, что это не программист, а шеф-повар
доказывает, что вкуснее суфле, рецепт которого написан на английском,
а не на французском или на испанском. Конечно же, это - глупость: мы
получаем одно и то же блюдо, независимо от того, на каком языке
обозначены его ингредиенты. Цветок есть цветок, не правда ли?
Ну понятно же, что я имел ввиду не саму ide, а майкрософтовский компилятор, который идет в неразрывном комплекте. А этот компилятор есть компилятор языка с++, а не с. Усё.
Читайте также: