Подтвердить что ты не робот

Ошибка 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.

4b9b3361

Ответ 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, и программа работает как чудо