Я новичок в C ++. Я только начал! Я пробовал код в версии Visual C ++ 2010 Express, но получил следующее сообщение об ошибке кода.
------ Сборка началась: Project: abc, Configuration: Debug Win32 ----- - ugo.cppc: users castle documents visual studio 2010 projects abc abc ugo.cpp (3): фатальная ошибка C1083: не удается открыть включаемый файл: 'iostream': такого файла или каталога нет === ======= Сборка: 0 успешных, 1 неудачных, 0 обновленных, 0 пропущенных ==========
Это код
//first.cpp - отображает сообщение # include //директива PREPROCESSOR int main (void)//заголовок функции {//начало тела функции с использованием пространства имен std ; cout
Замените
#include
на
using namespace std; #include

-
6Что делать, если вы не хотите использовать пространство имен std? – sparkyShorts 01 фев. 2016, в 1:53
-
@sparkyShorts, поэтому, когда мы обычно кодируем на C/C ++, обычно следует соблюдать стандарт, чтобы не писать «с использованием пространства имен XXX», чтобы избежать путаницы, когда кто-то отлаживает код. Вместо этого мы напрямую используем имя пространства имен и вызываем его библиотечную функцию. например std :: cout, std :: cin, std :: vector и т. д. – Шриджан Чаудхари, 26 мая 2020 г., в 17:12
-
Использование * .h для любого файла заголовка рекомендуется только для внешних библиотек по сравнению со стандартным C ++, поэтому, если вы включают стандартную библиотеку C/C ++, пожалуйста, избегайте использования “.h” в качестве суффикса. – Шриджан Чаудхари 26 мая ’20 в 17:14
Заменить
#include
с
с использованием пространства имен std; #include
Некоторые вещи, которые вы должны проверить:
-
Проверьте папку include в вашей версии VS ( в “
C: Program Files Microsoft Visual Studio xx. x VC include
“проверьте файл, который вы включаете,iostream
, убедитесь, что он там ). -
Проверьте свои проекты Включить каталоги в
> Свойства> Свойства конфигурации> Каталоги VC ++> IncludeDirectories
– ( он должен выглядеть так:$ (VCInstallDir) include; $ (VCInstallDir) atlmfc include; $ (WindowsSdkDir) include; $ (FrameworkSDKDir) include;
) -
Убедитесь, что вы выбрали правильный проект для этого кода (
File> New> Project> Visual C ++> Win32 Console Application
) -
Убедитесь, что в ваших файлах кода нет
-
Убедитесь, что у вас не более одного
main ()
функция в вашем проекте de файлы ( в том же проекте, проверьте другие файлы кода, файлы .cpp и .h на наличие функцииmain ()
и удалите его или замените другим именем ).
Вот некоторые вещи, с помощью которых вы можете попробовать:
- Исключите
using namespace std;
из вашей функцииmain ()
и поместите его после директивы include. - Используйте
std :: cout
без, используя пространство имен std;
.

-
@ Secko: что мне проверять в этих строках: проверьте папку include в вашей версии VS. Проверьте ваши проекты. Включить каталоги в > Свойства> Свойства конфигурации> Каталоги VC ++> Включить каталоги Убедитесь, что вы выбрали правильный проект для этого кода (консольное приложение). Убедитесь, что у вас нигде нет в ваших файлах кода (VS не поддерживает это). Убедитесь, что у вас нет более одной функции main () в файлах кода вашего проекта. Я действительно новичок – jamesbond 30 июл., 2012 в 23:08
Некоторые вещи, которые вы должны проверить:
-
Проверьте папку include в вашей версии VS ( в “
C: Program Files Microsoft Visual Studio xx. x VC include
“проверьте файл, который вы включаете,iostream
, убедитесь, что он там ). -
Проверьте свои проекты Включить каталоги в
> Свойства> Свойства конфигурации> Каталоги VC ++> IncludeDirectories
– ( он должен выглядеть так:$ (VCInstallDir) include; $ (VCInstallDir) atlmfc include; $ (WindowsSdkDir) include; $ (FrameworkSDKDir) include;
) -
Убедитесь, что вы выбрали правильный проект для этого кода (
File> New> Project> Visual C ++> Win32 Console Application
) -
Убедитесь, что в ваших файлах кода нет
-
Убедитесь, что у вас не более одного
main ()
функция в вашем проекте de файлы ( в том же проекте, проверьте другие файлы кода, файлы .cpp и .h на наличие функцииmain ()
и удалите его или замените другим именем ).
Некоторые вещи, которые вы можете попробовать построить с помощью:
- Исключите
using namespace std;
из вашей функцииmain ()
и поместите его после директивы include. - Используйте
std :: cout
без, используя пространство имен std;
.
У меня была точно такая же проблема в VS 2015
. Похоже, что начиная с VS 2010
и более поздних версий вам необходимо включать #include "stdafx.h"
во все свои проекты.
#include "stdafx.h" #include using namespace std;
У меня это сработало. В приведенном ниже примере не произошло:
#include using namespace std;
Это тоже не удалось:
#include using namespace std; #include "stdafx.h"

-
2(Для всех, кто проходит) Если это произойдет с вами, отключите предварительно скомпилированные заголовки. – OMGtechy 21 окт. ’16 в 14:44
У меня была точно такая же проблема в VS 2015
. Похоже, что начиная с VS 2010
и более поздних версий вам необходимо включать #include "stdafx.h"
во все свои проекты.
#include "stdafx.h" #include using namespace std;
У меня это сработало. В приведенном ниже примере не произошло:
#include using namespace std;
Это тоже не удалось:
#include using namespace std; #include "stdafx.h"
Скорее всего, вам не хватает $ (IncludePath) в свойствах-> Каталоги VC ++-> Включить Справочники. Добавление этого должно снова сделать видимым iostream и другие. Вероятно, вы удалили его по ошибке при настройке своей программы.
Скорее всего, вам не хватает $ (IncludePath) в свойствах-> Каталоги VC ++-> Включить Справочники. Добавление этого должно снова сделать видимым iostream и другие. Вероятно, вы удалили его по ошибке при настройке своей программы.
Возможно, ваш компилятор и установленные вокруг него ресурсы были неполными. Я рекомендую переустановить ваш компилятор: после этого он должен работать.
-
Я пробовал несколько раз. Тот же результат. Я подумываю об использовании другого компилятора. Вы можете предложить кого-нибудь? – jamesbond 30 июл, в 23:10
Возможно, ваш компилятор и установленные вокруг него ресурсы каким-то образом были неполными. Я рекомендую переустановить ваш компилятор: после этого он должен работать.
Я получил эту ошибку, когда создал «Пустое» консольное приложение в Visual Studio 2015. Я воссоздал приложение, оставив флажок «Пустой» снятым, в него были добавлены все необходимые библиотеки.
У меня возникла эта ошибка, когда я создал «Пустое» консольное приложение в Visual Studio 2015. Я заново создал приложение, оставив ‘ Если флажок «Пусто» не установлен, в него добавлены все необходимые библиотеки.
Если на ваши подключаемые каталоги правильно ссылаются в листе свойств проекта VC ++ -> Свойства конфигурации -> Каталоги VC ++ -> Включить каталоги. Путь указан в макросе $ (VC_IncludePath). В моем VS 2015 это оценивается как : “C: Program Files (x86) Microsoft Visual Studio 14.0 VC include”
с использованием пространства имен std; #include
Это сделало это для меня.
Если ваши подключаемые каталоги правильно указаны в списке свойств проекта VC ++ -> Свойства конфигурации -> Каталоги VC ++ -> Включить каталоги. Путь упоминается в макросе $ (VC_IncludePath). В моем VS 2015 это оценивается как “C: Program Files (x86) Microsoft Visual Studio 14.0 VC include”
using namespace std; #include
Это сделало это для меня.
Microsoft Visual Studio забавна, когда вы используете установщик, вы ДОЛЖНЫ установить множество параметров, чтобы обойти .netframework (несколько), чтобы сделать больше c ++ вместо приложений c sharp, таких как параметры clr при разработке dekstop … в установщике Visual Studio …. разница в консольном проекте c ++ win32 или проекте консоли CLR на c ++. Так в чем разница? Ну, я не собираюсь перечислять все файлы, которые включает CLR, но поскольку большинство хороших ядер С ++ находятся в Linux … поэтому CLR позволяет вам обходить многие окна. Netframework b/c Visual Studio действительно предназначена для вас для создания приложений на C Sharp.
Вот консольный проект C ++ win32!
#include "stdafx.h" #include using namespace std; int main () {cout
Теперь это консольный проект C ++ CLR!
#include "stdafx.h" с использованием пространства имен System; int main (array ^ args) {Console :: WriteLine ("Hello World"); return 0;}
Обе программы делают одно и то же …. CLR просто выглядит более структурированной методологией перегрузки классов, поэтому Microsoft может улучшить свою собственную обширную библиотеку, с которой вы должны ознакомиться, если хотите. https://msdn.microsoft.com/en-us/library/2e6a4at9.aspx
другие вещи, которые вы узнаете из отладки, чтобы добавить их для предотвращения ошибок
#ifdef _MRC_VER # define _CRT_SECURE_NO_WARNINGS # endif

Microsoft Visual Studio забавна, когда вы используете установщик, вы ДОЛЖНЫ установить много опций, чтобы обойти .netframework (отчасти), чтобы сделать больше приложений c ++ вместо c sharp, таких как параметры clr при разработке dekstop … в установщике Visual Studio …. разница в проекте консоли c ++ win32 или проекте консоли CLR c ++. Так в чем разница? Ну, я не собираюсь перечислять все файлы, которые включает CLR, но поскольку большинство хороших ядер С ++ находятся в Linux … поэтому CLR позволяет вам обходить многие окна. Netframework b/c Visual Studio действительно предназначена для вас для создания приложений на C Sharp.
Вот консольный проект C ++ win32!
#include "stdafx.h" #include using namespace std; int main () {cout
Теперь это консольный проект C ++ CLR!
#include "stdafx.h" с использованием пространства имен System; int main (array ^ args) {Console :: WriteLine ("Hello World"); return 0;}
Обе программы делают одно и то же …. CLR просто выглядит более структурированной методологией перегрузки классов, поэтому Microsoft может улучшить свою собственную обширную библиотеку, с которой вы должны ознакомиться, если хотите. https://msdn.microsoft.com/en-us/library/2e6a4at9.aspx
другие вещи, которые вы узнаете из отладки, чтобы добавить их для предотвращения ошибок
#ifdef _MRC_VER # define _CRT_SECURE_NO_WARNINGS # endif
Убедитесь, что у вас установлена Desktop Development с установкой C ++ d . У меня возникла та же проблема, потому что у меня была установлена только разработка универсальной платформы Windows.
Убедитесь, что у вас установлена Desktop Development с установкой C ++ d . У меня возникла та же проблема, потому что у меня была установлена только разработка универсальной платформы Windows..
быстрое исправление для небольших программ:
добавьте: #include

быстрое исправление для небольших программ:
добавить: #include
В моем случае мой VS2015
установлен без select C ++ package
, а VS2017
установлен с Пакет C ++
. Если я использую VS2015
, открытый проект C ++ покажет эту ошибку, а использование VS2017
не приведет к ошибке.
В моем случае мой VS2015
установлен без select пакет C ++
, а VS2017
установлен с пакетом C ++
. Если я использую VS2015
открытый проект C ++ покажет эту ошибку, и использование VS2017
не приведет к ошибке.
Если вы создали переменную среды с именем IncludePath , попробуйте переименовать ее во что-нибудь другое.
Это имя заменит $ (IncludePath) внутри свойств проекта.
Если вы создали переменную среды с именем IncludePath , попробуйте переименовать ее во что-нибудь другое.
Это имя заменит $ (IncludePath) внутри свойств проекта.
//first.cpp - отображает сообщение # include //директива PREPROCESSOR с использованием nameapce std ; int main ()//заголовок функции {//начало тела функции///using namespace std; cout
//first.cpp - отображает сообщение # include //директива PREPROCESSOR с использованием namesapce std; int main ()//заголовок функции {//начало тела функции///using namespace std; cout