Ошибка C2065: 'cout': необъявленный идентификатор
Я работаю над частью "драйвера" моего назначения программирования, и я продолжаю получать эту абсурдную ошибку:
ошибка C2065: 'cout': необъявленный идентификатор
Я даже пытался использовать std:: cout, но я получаю еще одну ошибку, которая говорит: IntelliSense: пространство имен "std" не имеет члена "cout" , когда у меня есть объявленный с использованием пространства имен std, включая iostream +, я даже пытался использовать ostream
Я знаю, что это стандартный вопрос о нобе, но это меня насторожило, и я новичок (это означает: я запрограммировал раньше...)
#include <iostream>
using namespace std;
int main () {
cout << "hey" << endl;
return 0;
}
Я использую Visual Studio 2010 и запускаю Windows 7. Все файлы .h имеют "использование пространства имен std" и включают iostream и ostream.
Ответы
Ответ 1
В Visual Studio вы должны #include "stdafx.h"
и быть первым включением файла cpp. Например:
Это не будет работать.
#include <iostream>
using namespace std;
int main () {
cout << "hey" << endl;
return 0;
}
#include <iostream>
#include "stdafx.h"
using namespace std;
int main () {
cout << "hey" << endl;
return 0;
}
Это подойдет.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main () {
cout << "hey" << endl;
return 0;
}
Вот отличный ответ о том, что делает заголовок stdafx.h.
Ответ 2
напишите этот код, он отлично работает.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World!";
return 0;
}
Ответ 3
У меня была такая же проблема на Visual Studio С++ 2010. Это легко исправить. Над функцией main() просто замените стандартные строки с этим ниже, но с символом фунта перед включенными.
# include "stdafx.h"
# include <iostream>
using namespace std;
Ответ 4
include "stdafx.h"
в порядке
Но вы не можете использовать cout
, если вы не включили using namespace std
Если вы не включили пространство имен std, вам нужно написать std::cout
вместо простого cout
Ответ 5
Я видел, что если вы используете
#include <iostream.h>
тогда вы получите эту проблему.
Если вы используете
#include <iostream>
(уведомление - без .h)
то вы не получите проблему, о которой вы упомянули.
Ответ 6
Если вы начали проект, требующий строки #include "stdafx.h"
, поставьте его первым.
Ответ 7
Нижеприведенный код компилируется и запускается правильно для меня, используя gcc. Попробуйте скопировать/вставить это и посмотреть, работает ли он.
#include <iostream>
using namespace std;
int bob (int a) { cout << "hey" << endl; return 0; };
int main () {
int a = 1;
bob(a);
return 0;
}
Ответ 8
Если единственным файлом, который вы включаете, является iostream, и он все еще говорит undefined, то, возможно, iostream не содержит того, что он должен был. Возможно ли, что у вас есть пустой файл, совпадающий по имени "iostream" в вашем проекте?
Ответ 9
Я видел похожие вещи, когда я использовал расширение .c файла с кодом С++. Кроме этого, я должен согласиться со всеми о багги установке. Это работает, если вы попытаетесь скомпилировать проект с более ранней версией VS? Попробуйте VС++ Express 2008. Его бесплатно на msdn.
Ответ 10
Такое глупое решение в моем случае:
// Example a
#include <iostream>
#include "stdafx.h"
Выше было указано в качестве примера a, когда я изменил его, чтобы он был похож на пример b ниже...
// Example b
#include "stdafx.h"
#include <iostream>
Мой код составлен как шарм. Попробуйте, гарантированно сработает.
Ответ 11
прежде чем вы начнете эту программу, избавитесь от всего кода и сделайте простой мир привет внутри основного. Включать только iostream и использовать пространство имен std;.
Постепенно добавьте его, чтобы найти свою проблему.
cout << "hi" << endl;
Ответ 12
У меня есть VS2010, Beta 1 и Beta 2 (один на моей рабочей машине и один на дому), и я использовал std
множество без проблем. Попробуйте ввести:
std::
И посмотрите, дает ли Intellisense что-нибудь. Если это дает вам обычный материал (abort
, abs
, acos
и т.д.), За исключением cout
, ну тогда это довольно головоломка. Определенно посмотрите на ваши заголовки С++ в этом случае.
Помимо этого, я бы просто добавил, чтобы убедиться, что вы используете обычный пустой проект (не CLR, где Intellisense поврежден), и что вы на самом деле пытались построить проект хотя бы один раз. Как я уже упоминал в комментарии, VS2010 анализирует файлы после добавления include
; возможно, что что-то застряло в парсере, и он не сразу "нашел" cout
. (В этом случае попробуйте перезапустить VS, возможно?)
Ответ 13
У меня была такая же проблема при запуске проекта ms С++ 2010 с нуля - я удалил все файлы заголовков, сгенерированные с помощью ms, но использовал:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main() {
cout << "hey" << endl;
return 0;
}
Мне пришлось включить stdafx.h
, поскольку это вызвало ошибку, в которой он не был.
Ответ 14
Возьмите код
#include <iostream>
using namespace std;
из вашего .cpp файла, создайте файл заголовка и поместите его в файл .h. Затем добавьте
#include "whatever your header file is named.h"
в верхней части вашего .cpp-кода. Затем запустите его снова.
Ответ 15
Вы уверены, что он компилируется как С++? Проверьте имя файла (он должен заканчиваться на .cpp
). Проверьте настройки проекта.
Нет ничего плохого в вашей программе, а cout
находится в namespace std
. Ваша установка VS 2010 Beta 2 является дефектной, и я не думаю, что это просто ваша установка.
Я не думаю, что VS 2010 готов к С++. Стандартная программа "Hello, World" не работала на бета-версии 1. Я просто попытался создать тестовое консольное приложение Win32, а сгенерированный файл test.cpp
не имел функции main()
.
У меня действительно очень плохое чувство о VS 2010.
Ответ 16
Попробуй, это сработает. Я проверил его в Windows XP, Visual Studio 2010 Express.
#include "stdafx.h"
#include <iostream>
using namespace std;
void main( )
{
int i = 0;
cout << "Enter a number: ";
cin >> i;
}
Ответ 17
Когда вы создали свой проект, вы не установили правильно использовать предварительно скомпилированные заголовки. Измените его в свойствах → C/С++ → предварительно скомпилированные заголовки.
Ответ 18
В Visual Studio используйте весь ваш фильтр заголовка ниже "stdafx.h".
Ответ 19
Включите библиотеку std, вставив следующую строку вверху вашего кода:
using namespace std;
Ответ 20
обычно сохраняется в папке C:\Program Files\Microsoft Visual Studio 8\VC\include. Сначала проверьте, все ли он там. Затем выберите "Инструменты + варианты", "Проекты и решения", "Каталоги VС++", выберите "Включить файлы" в поле "Показать каталоги для" и дважды проверьте, что включение (VCInstallDir) включено в список.
Ответ 21
Я столкнулся с этой ошибкой после того, как установил vs 2010 и просто пытался получить почти идентичную программу для работы.
Я уже делал кодировку ваниль C в коробках в стиле unix, решил, что немного поиграю с этим.
Первая программа, которую я пробовал, была:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Hello World!";
return 0;
}
Большая вещь, чтобы заметить здесь... если вы все сделали C-кодирование,
int _tmain(int argc, _TCHAR* argv[])
Выглядит странно. это должно быть:
int main( int argc, char ** argv )
В моем случае я просто изменил программу на:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world from VS 2010!\n";
return 0;
}
И он отлично работал.
Примечание. Используйте CTRL + F5, чтобы окно консоли закрывалось, чтобы вы могли видеть результаты.
Ответ 22
Просто используйте printf
!
Включите stdio.h
в заголовочный файл stdafx.h
для printf
.
Ответ 23
Я пришел сюда, потому что у меня была такая же проблема, но когда я сделал #include "stdafx.h"
, он сказал, что не нашел этот файл.
Что для меня было трюком: #include <algorithm>
.
Я использую Microsoft Visual Studio 2008.
Это то, что вы можете использовать тогда, в том числе. 'count': Ссылка
Ответ 24
Это был компилятор - теперь я использую Eclipse Galileo, и программа работает как чудо