2013-08-14 3 views
-3

Я использую Visual Studio, и я думаю, что, должно быть, я испортил некоторые настройки. Я не могу включить основные вещи, такие как <iostream>. Как я могу это исправить?C++ #include не работает в Microsoft Visual Studio 2010

#include <iostream> // for standard I/O 
#include <string> // for strings 
#include <iomanip> // for controlling float print precision 
#include <sstream> // string to number conversion 
#include <opencv2/imgproc/imgproc.hpp> // Gaussian Blur 
#include <opencv2/core/core.hpp>  // Basic OpenCV structures (cv::Mat, Scalar) 
#include <opencv2/highgui/highgui.hpp> // OpenCV window I/O 

using namespace std; 
using namespace cv; 

Все приведенные выше строки находятся в красной стрелке ниже. Я предполагаю, что, пытаясь настроить Visual Studio на использование OpenCv, я испортил некоторые настройки.

+1

Что заставляет вас думать, что вы не можете включать основные вещи, такие как '? У вас есть специальное сообщение об ошибке? У нас недостаточно информации. – Nbr44

+2

, пожалуйста, покажите свой код и свое сообщение об ошибке. И если ваш код содержит до stdafx.h, то это ваша проблема. – dhavenith

ответ

3

Скорее всего, вы забыли добавить 'using namespace std', так как практически ничего в iostream не будет полезно без него. Если вы получаете «can not find ...», то у вас есть проблема с настройкой и вы должны переустановить Visual Studio, потому что заголовки не были помещены должным образом.

Надеюсь, что это поможет, не стесняйтесь публиковать свой код, и я могу вам точно сказать, в чем проблема, но это наиболее вероятно.

+3

Um, 'using namespace std' - кувалда, которая никогда не должна использоваться. Если в задаче отсутствуют команды 'std ::' для имен, которые определены в '', решение состоит в том, чтобы добавить квалификаторы. Но без кода в вопросе, который просто догадывается. –

+0

@PeteBecker - это чисто мнение, и я бы согласился в некоторых случаях. Но для небольшого количества кода, подобного этому, это не так сильно отличается. Но для справки, если вы используете cout, cin, string и т. Д., Вы должны либо «использовать std :: cin» ... или просто std :: cin. Я программист C в глубине души, поэтому я часто не занимаюсь пространством имен. – phyrrus9

+0

Нет, это не чисто мнение. Мы столкнулись с большими проблемами, чтобы помещать имена библиотек в их собственное пространство имен, чтобы избежать конфликтов в глобальном пространстве имен. Застревание всего в глобальное пространство имен - плохая идея. –

Смежные вопросы