Visual c ++ не может открыть включаемый файл iostream

Я новичок в 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  

17

Замените

  #include  

на

  using namespace std; #include  

Поделиться
Улучшить этот ответ
ответил 11 июня ’14 в 22:10
  • 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  

10

Некоторые вещи, которые вы должны проверить:

  • Проверьте папку 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 )

  • Убедитесь, что в ваших файлах кода нет , VS не не поддерживает это ( в том же проекте, проверьте другие файлы кода, файлы .cpp и .h на наличие и удалите ).

  • Убедитесь, что у вас не более одного main () функция в вашем проекте de файлы ( в том же проекте, проверьте другие файлы кода, файлы .cpp и .h на наличие функции main () и удалите его или замените другим именем ).

Вот некоторые вещи, с помощью которых вы можете попробовать:

  • Исключите using namespace std; из вашей функции main () и поместите его после директивы include.
  • Используйте std :: cout без , используя пространство имен std; .
Поделиться
Улучшить этот ответ
отредактировал 31 июля 2012 в 17:10
ответил 29 июля ’12 в 23:39
  • @ 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 )

  • Убедитесь, что в ваших файлах кода нет , VS не не поддерживает это ( в том же проекте, проверьте другие файлы кода, файлы .cpp и .h на наличие и удалите ).

  • Убедитесь, что у вас не более одного main () функция в вашем проекте de файлы ( в том же проекте, проверьте другие файлы кода, файлы .cpp и .h на наличие функции main () и удалите его или замените другим именем ).

Некоторые вещи, которые вы можете попробовать построить с помощью:

  • Исключите using namespace std; из вашей функции main () и поместите его после директивы include.
  • Используйте std :: cout без , используя пространство имен std; .

3

У меня была точно такая же проблема в 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"  

Поделиться
Улучшить этот ответ
отредактировано 5 декабря 2015 г. в 21:15
Натаниэль Форд
16,4 1717 золотых знаков7171 серебряных знаков8585 бронзовых знаков
ответ дан 5 дек ’15 в 23:45
  • 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"  

2

Скорее всего, вам не хватает $ (IncludePath) в свойствах-> Каталоги VC ++-> Включить Справочники. Добавление этого должно снова сделать видимым iostream и другие. Вероятно, вы удалили его по ошибке при настройке своей программы.

Поделиться
Улучшить этот ответ
ответил 10 дек. ’15 в 12:25
добавить комментарий |

Скорее всего, вам не хватает $ (IncludePath) в свойствах-> Каталоги VC ++-> Включить Справочники. Добавление этого должно снова сделать видимым iostream и другие. Вероятно, вы удалили его по ошибке при настройке своей программы.


1

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

Поделиться
Улучшить этот ответ
ответил 30 июля ’12 в 0:26
  • Я пробовал несколько раз. Тот же результат. Я подумываю об использовании другого компилятора. Вы можете предложить кого-нибудь? – jamesbond 30 июл, в 23:10
добавить комментарий |

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


1

Я получил эту ошибку, когда создал «Пустое» консольное приложение в Visual Studio 2015. Я воссоздал приложение, оставив флажок «Пустой» снятым, в него были добавлены все необходимые библиотеки.

Поделиться
Улучшить этот ответ
ответил 08 июня ’16 в 22:23
добавить комментарий |

У меня возникла эта ошибка, когда я создал «Пустое» консольное приложение в Visual Studio 2015. Я заново создал приложение, оставив ‘ Если флажок «Пусто» не установлен, в него добавлены все необходимые библиотеки.


1

Если на ваши подключаемые каталоги правильно ссылаются в листе свойств проекта VC ++ -> Свойства конфигурации -> Каталоги VC ++ -> Включить каталоги. Путь указан в макросе $ (VC_IncludePath). В моем VS 2015 это оценивается как : “C: Program Files (x86) Microsoft Visual Studio 14.0 VC include”

  с использованием пространства имен std; #include   

Это сделало это для меня.

Поделиться
Улучшить этот ответ
отредактировано 19 февраля 2017 в 22:02
ответил 19 февраля 2017 в 21:55
добавить комментарий |

Если ваши подключаемые каталоги правильно указаны в списке свойств проекта VC ++ -> Свойства конфигурации -> Каталоги VC ++ -> Включить каталоги. Путь упоминается в макросе $ (VC_IncludePath). В моем VS 2015 это оценивается как “C: Program Files (x86) Microsoft Visual Studio 14.0 VC include”

   using namespace std; #include   

Это сделало это для меня.


1

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  

Поделиться
Улучшить этот ответ
ответил 14 сен 2017 в 16:24
добавить комментарий |

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  

1

Убедитесь, что у вас установлена ​​ Desktop Development с установкой C ++ d . У меня возникла та же проблема, потому что у меня была установлена ​​только разработка универсальной платформы Windows.

Поделиться
Улучшить этот ответ
ответил 16 июля ’20 в 20:28
добавить комментарий |

Убедитесь, что у вас установлена ​​ Desktop Development с установкой C ++ d . У меня возникла та же проблема, потому что у меня была установлена ​​только разработка универсальной платформы Windows..


0

быстрое исправление для небольших программ:

добавьте: #include

Поделиться
Улучшить этот ответ
ответил 08 июля ’19 в 3:12
добавить комментарий |

быстрое исправление для небольших программ:

добавить: #include


0

В моем случае мой VS2015 установлен без select C ++ package , а VS2017 установлен с Пакет C ++ . Если я использую VS2015 , открытый проект C ++ покажет эту ошибку, а использование VS2017 не приведет к ошибке.

Поделиться
Улучшите это ответ
Создан 06 июн. /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944 /4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/4944/фото-0. jpg “>
добавить комментарий |

В моем случае мой VS2015 установлен без select пакет C ++ , а VS2017 установлен с пакетом C ++ . Если я использую VS2015 открытый проект C ++ покажет эту ошибку, и использование VS2017 не приведет к ошибке.


0

Если вы создали переменную среды с именем IncludePath , попробуйте переименовать ее во что-нибудь другое.

Это имя заменит $ (IncludePath) внутри свойств проекта.

Поделиться
Улучшить этот ответ
ответил 28 дек. ’20 в 17:08
добавить комментарий |

Если вы создали переменную среды с именем IncludePath , попробуйте переименовать ее во что-нибудь другое.

Это имя заменит $ (IncludePath) внутри свойств проекта.


-1
 //first.cpp - отображает сообщение # include //директива PREPROCESSOR с использованием nameapce std  ; int main ()//заголовок функции {//начало тела функции///using namespace std;  cout  

Поделиться
Улучшите этот ответ
ответил 08 июля ’19 в 3:15
добавить комментарий |

 //first.cpp - отображает сообщение # include //директива PREPROCESSOR с использованием namesapce std;  int main ()//заголовок функции {//начало тела функции///using namespace std;  cout  

Оцените статью
futurei.ru
Добавить комментарий