#include <iostream> существует, но я получаю сообщение об ошибке: идентификатор "cout" равен undefined. Зачем?
Я изучаю С++ и COM через книги.
В среде IDE MS Visual Studio 2012 я создал новый пустой проект С++ и добавил к нему некоторые существующие файлы. Мой файл CPP содержит строку #include<iostream>
, но в редакторе я получил такие сообщения:
Ошибка: идентификатор "cout" undefined
конец
Ошибка: идентификатор "endl" равен undefined
Экран:
![enter image description here]()
Почему это происходит?
Ответы
Ответ 1
Вам нужно указать пространство имен std::
:
std::cout << .... << std::endl;;
В качестве альтернативы вы можете использовать директиву using
:
using std::cout;
using std::endl;
cout << .... << endl;
Я должен добавить, что вам следует избегать этих директив using
в заголовках, так как код, содержащий их, также будет содержать символы, помещенные в глобальное пространство имен. Ограничить использование директив небольшими областями, например
#include <iostream>
inline void foo()
{
using std::cout;
using std::endl;
cout << "Hello world" << endl;
}
Здесь директива using
применима только к области foo()
.
Ответ 2
cout
находится в пространстве имен std, вы должны использовать std::cout
в своем коде.
И вы не должны добавлять using namespace std;
в свой заголовочный файл, это плохо для смешивания вашего кода с пространством имен std, особенно не добавляйте его в заголовочный файл.
Ответ 3
Вы можете добавить это в начале после #include <iostream>
:
using namespace std;