- Remove From My Forums
-
Question
-
Im having trouble building a programme when i do it fails and says this:
error C2065: ‘cout’ : undeclared identifier
I built a programme before using «cout» which works fine called test here it is
/*
this is a test
*/
#include «StdAfx.h»#include <iostream>
using namespace std;int main()
{
cout << «hi this is a test «
;system («pause»);;return 0;
}that one works well it is a CLR console application.
i am using microsoft visual basic 2010
the programme that doesnt work and gets the error
error C2065: ‘cout’ : undeclared identifier
i think is a win32 application
i am new to C++ and have just started learning,can anyone help?
Answers
-
Hi,
In Visual Studio there are two kinds of *.exe binaries, windows applications and console applications. A console application is has a single console window where all input, output and errors are displayed. While a windows application usually presents a window
and interacts with the user using the Microsoft GUI.For developers, the main difference between Windows Applications and Console Applications is that the former’s entry point is WinMain() or wWinMain(), while the latter’s entry point is main() or wmain().
We can use cout in console applications to output strings to the console window. While in Windows applications, cout cannot be used and we can use other APIs such as TextOut instead to output on the window.
So please separate console applications from windows applications. It is not proper for us to mix the two types of applications together.
I hope this reply is helpful to you.
Best regards,
Helen Zhao [MSFT]
MSDN Community Support | Feedback to us
-
Marked as answer by
Monday, November 28, 2011 9:03 PM
-
Marked as answer by
Что такое необъявленные ошибки идентификатора? Каковы общие причины и как их исправить?
Пример текстов ошибок:
- Для компилятора Visual Studio:
error C2065: 'cout' : undeclared identifier
- Для компилятора GCC:
'cout' undeclared (first use in this function)
39
Решение
Чаще всего они приходят из-за того, что забывают включить заголовочный файл, содержащий объявление функции, например, эта программа выдаст ошибку «необъявленный идентификатор»:
Отсутствует заголовок
int main() {
std::cout << "Hello world!" << std::endl;
return 0;
}
Чтобы это исправить, мы должны включить заголовок:
#include <iostream>
int main() {
std::cout << "Hello world!" << std::endl;
return 0;
}
Если вы написали заголовок и включили его правильно, заголовок может содержать неправильный включить охрану.
Чтобы узнать больше, смотрите http://msdn.microsoft.com/en-us/library/aa229215(v=vs.60).aspx.
Переменная с ошибкой
Другой распространенный источник ошибки новичка возникает, когда вы неправильно написали переменную:
int main() {
int aComplicatedName;
AComplicatedName = 1; /* mind the uppercase A */
return 0;
}
Неправильный объем
Например, этот код выдаст ошибку, потому что вам нужно использовать std::string
:
#include <string>
int main() {
std::string s1 = "Hello"; // Correct.
string s2 = "world"; // WRONG - would give error.
}
Использовать до объявления
void f() { g(); }
void g() { }
g
не был объявлен до его первого использования. Чтобы это исправить, либо переместите определение g
до f
:
void g() { }
void f() { g(); }
Или добавить декларацию g
до f
:
void g(); // declaration
void f() { g(); }
void g() { } // definition
stdafx.h не сверху (специфично для VS)
Это зависит от Visual Studio. В VS нужно добавить #include "stdafx.h"
перед любым кодом. Код до того, как он игнорируется компилятором, так что если у вас есть это:
#include <iostream>
#include "stdafx.h"
#include <iostream>
будет проигнорировано Вам нужно переместить его ниже:
#include "stdafx.h"#include <iostream>
Не стесняйтесь редактировать этот ответ.
54
Другие решения
Рассмотрим похожую ситуацию в разговоре. Представьте, что ваш друг говорит вам: «Боб идет на ужин», а ты не представляешь, кто такой Боб. Вы будете в замешательстве, верно? Твой друг должен был сказать: «У меня есть коллега по работе по имени Боб. Боб подходит к обеду». Теперь Боб объявлен, и вы знаете, о ком говорит ваш друг.
Компилятор выдает ошибку «необъявленный идентификатор», когда вы пытаетесь использовать какой-то идентификатор (который будет именем функции, переменной, класса и т. Д.), И компилятор не видит объявления для него. То есть компилятор понятия не имеет, о чем вы говорите, потому что раньше его не видел.
Если вы получаете такую ошибку в C или C ++, это означает, что вы не сказали компилятору о том, что вы пытаетесь использовать. Объявления часто встречаются в заголовочных файлах, поэтому, скорее всего, это означает, что вы не включили соответствующий заголовок. Конечно, может случиться так, что вы просто не помните, чтобы объявить сущность вообще.
Некоторые компиляторы выдают более конкретные ошибки в зависимости от контекста. Например, пытаясь скомпилировать X x;
где тип X
не был объявлен с Clang скажет вам «неизвестное имя типа X
«. Это гораздо полезнее, потому что вы знаете, что он пытается интерпретировать X
как тип. Тем не менее, если у вас есть int x = y;
, где y
еще не объявлено, он скажет вам «использование необъявленного идентификатора y
«потому что есть некоторая двусмысленность в том, что именно y
может представлять.
12
У меня была такая же проблема с пользовательским классом, который был определен в пространстве имен. Я пытался использовать класс без пространства имен, вызывая ошибку компилятора «идентификатор» MyClass «не определен».
Добавление
using namespace <MyNamespace>
или используя класс, как
MyNamespace::MyClass myClass;
решил проблему.
5
В C и C ++ все имена должны быть объявлены перед использованием. Если вы попытаетесь использовать имя переменной или функции, которая не была объявлена, вы получите ошибку «необъявленный идентификатор».
Однако функции — это особый случай в C (и только в C), в котором вам не нужно сначала объявлять их. Компилятор C будет предполагать, что функция существует с числом и типом аргументов, как в вызове. Если фактическое определение функции не совпадает, вы получите еще одну ошибку. Этот особый случай для функций не существует в C ++.
Вы исправляете ошибки такого рода, проверяя, что функции и переменные объявлены до их использования. В случае printf
вам нужно включить заголовочный файл <stdio.h>
(или же <cstdio>
в C ++).
Для стандартных функций я рекомендую вам проверить, например, этот справочный сайт, и найдите функции, которые вы хотите использовать. Документация для каждой функции говорит вам, какой заголовочный файл вам нужен.
4
Эти сообщения об ошибках
1.For the Visual Studio compiler: error C2065: 'printf' : undeclared identifier
2.For the GCC compiler: `printf' undeclared (first use in this function)
означает, что вы используете имя printf
но компилятор не видит, где было объявлено имя, и, соответственно, не знает, что это значит.
Любое имя, используемое в программе, должно быть объявлено до ее использования. Компилятор должен знать, что обозначает имя.
В этом конкретном случае компилятор не видит объявление имени printf
, Как мы знаем (но не компилятор) это имя стандартной функции C, объявленной в заголовке <stdio.h>
в C или в заголовке <cstdio>
в C ++ и размещены в стандарте (std::
) и глобальный (::
) (не обязательно) пространства имен.
Поэтому, прежде чем использовать эту функцию, мы должны предоставить объявление ее имени компилятору путем включения соответствующих заголовков.
Например
C:
#include <stdio.h>
int main( void )
{
printf( "Hello Worldn" );
}
C ++:
#include <cstdio>
int main()
{
std::printf( "Hello Worldn" );
// or printf( "Hello Worldn" );
// or ::printf( "Hello Worldn" );
}
Иногда причиной такой ошибки является простая опечатка. Например, давайте предположим, что вы определили функцию PrintHello
void PrintHello()
{
std::printf( "Hello Worldn" );
}
но в основном вы сделали опечатку и вместо PrintHello
ты напечатал printHello
с строчной буквы «р».
#include <cstdio>
void PrintHello()
{
std::printf( "Hello Worldn" );
}
int main()
{
printHello();
}
В этом случае компилятор выдаст такую ошибку, потому что он не видит объявление имени printHello
, PrintHello
а также printHello
два разных имени, одно из которых было объявлено, а другое не объявлено, но используется в теле основного
3
Это похоже на использование функции без ее объявления. заголовочный файл будет содержать
функция printf (). Включите заголовочный файл в вашу программу, это решение для этого.
Некоторые пользовательские функции могут также вызывать ошибки, если они не были объявлены перед использованием. Если
это используется во всем мире без проб.
0
В большинстве случаев, если вы уверены, что импортировали данную библиотеку, Visual Studio поможет вам с IntelliSense.
Вот что сработало для меня:
Удостоверься что #include "stdafx.h"
объявляется первым, то есть вверху всех ваших включений.
0
Я работаю над частью «драйвера» моего назначения программирования, и я продолжаю получать эту абсурдную ошибку:
ошибка 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 FilesMicrosoft Visual Studio 8VCinclude. Сначала проверьте, все ли он там. Затем выберите «Инструменты + варианты», «Проекты и решения», «Каталоги 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, и программа работает как чудо
andrystepa
Помогающий |
Пишу простейшую консольную программку в среде Visual Studio.Net Enterprise. #include «stdafx.h» char Name[24]; return 0; |
||
|
Hooter |
После #include <iostream> поставь: using namespace std; |
||
|
Алексей++
глобальный и пушистый Сообщений: 13 |
То есть как ‘cout’ undeclared identifier? Какой же это identifier? а что не так? Идентификатор неопределённой переменной имеется в виду. То есть не переменной, а имени класса или экземпляра класса |
||
|
andrystepa
Помогающий |
После #include <iostream> поставь: using namespace std; Спасибо, это помогло. Но остался вопрос — почему же на компе, что на работе все и без этой строки работало? |
||
|
Finch
Спокойный Пролетал мимо |
У тебя на работе Эта строка была #include «stdafx.h»? Да кстати, зачем для простой консоли, открывать MFC проект? |
||
Не будите спашяго дракона. |
andrystepa
Помогающий |
То есть как ‘cout’ undeclared identifier? Какой же это identifier? а что не так? Идентификатор неопределённой переменной имеется в виду. То есть не переменной, а имени класса или экземпляра класса Я спрашиваю не какой это identifier, а почему компилятор принял идентификатор стандартного потока ввода за какой-то другой идентификатор?! Ведь я включил iostream! |
||
|
andrystepa
Помогающий |
У тебя на работе Эта строка была #include «stdafx.h»? Да кстати, зачем для простой консоли, открывать MFC проект? Я не открывал MFC проект, я создал стандартный проект Win32 console application — и строка #include «stdafx.h» появилась именно оттуда. Однако, на работе я создавал проект Win32 application пустой, и этой строки там нет! Но как это повлияло? Строку #include <iostream> я из stdafx.h убрал, чтобы не было дублирования. |
||
|
Finch
Спокойный Пролетал мимо |
cout — это экземпляр класса ostream. Скорее всего он оказался вне зоны видимости. Поэтому компилятор и ругался на него. |
||
Не будите спашяго дракона. |
andrystepa
Помогающий |
Но почему он оказался вне зоны видимости? Здесь ведь нет никаких других, кроме std пространств имен! |
||
|
npak
Команда клуба
|
Я спрашиваю не какой это identifier, а почему компилятор принял идентификатор стандартного потока ввода за какой-то другой идентификатор?! Ведь я включил iostream! В iostream определён идентификатор std::cout, просто cout в нём нет |
||
|
Finch
Спокойный Пролетал мимо |
Я заметил, когда создается не пустой консольный проект, Очень часто компилятор глючит на казалось бы безобидные шаги. Поэтому я всегда создаю пустую консоль. Лучше лишний раз поработать ручками, чем ловить глюки. |
||
Не будите спашяго дракона. |
andrystepa
Помогающий |
Лишний раз убеждаюсь, что Assembler гораздо проще, чем эти навороченные языки. И зачем было городить столько условностей? |
||
|
Recommended Answers
Try this:
#include <iostream> using namespace std; int main() { cout << "Hello World /n"; return 0; }
Jump to Post
#include <iostream>
to get the standard header. Then you need eitherusing std::cout;
at the top or qualify it in the body of your code with std::cout <<«Yada»; You can also go the using namespace std; route but that brings its own problems.EDIT: Dang… JH, does someone …
Jump to Post
cout << "Hello World /n";
Actually this might give you a more ‘expected’ result:
cout << "Hello World n";
/n is not the same as n
Jump to Post
Did you select a Win32 console application at the beginning? or an empty project? (cause the empty one really is devoid of a lot of settings that need to be in place so it’s easiest to do the Win32 and weed the stuff out you don’t need)
I started …
Jump to Post
Also when creating a console-app in VS be sure to UNcheck «use precompiled headers»
Jump to Post
All 21 Replies
JasonHippy
724
Practically a Master Poster
13 Years Ago
Try this:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World /n";
return 0;
}
jonsca
1,059
Quantitative Phrenologist
Team Colleague
Featured Poster
13 Years Ago
#include <iostream>
to get the standard header. Then you need either using std::cout;
at the top or qualify it in the body of your code with std::cout <<«Yada»; You can also go the using namespace std; route but that brings its own problems.
EDIT: Dang… JH, does someone start a stopwatch when we begin posting?
Edited
13 Years Ago
by jonsca because:
n/a
Nick Evan
4,005
Industrious Poster
Team Colleague
Featured Poster
13 Years Ago
cout << "Hello World /n";
Actually this might give you a more ‘expected’ result:
cout << "Hello World n";
/n is not the same as n
Edited
13 Years Ago
by Nick Evan because:
n/a
amzyz
0
Newbie Poster
13 Years Ago
Try this:
#include <iostream> using namespace std; int main() { cout << "Hello World /n"; return 0; }
I’ve tried what you said Jason and i get:
fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add ‘#include «stdafx.h»‘ to your source?
and when i do include that library i get the first error again
amzyz
0
Newbie Poster
13 Years Ago
Actually this might give you a more ‘expected’ result:
cout << "Hello World n";
/n is not the same as n
Would that produce the cout error though?
amzyz
0
Newbie Poster
13 Years Ago
#include <iostream>
to get the standard header. Then you need eitherusing std::cout;
at the top or qualify it in the body of your code with std::cout <<«Yada»; You can also go the using namespace std; route but that brings its own problems.EDIT: Dang… JH, does someone start a stopwatch when we begin posting?
Tried that as well nothing changed
jonsca
1,059
Quantitative Phrenologist
Team Colleague
Featured Poster
13 Years Ago
Did you select a Win32 console application at the beginning? or an empty project? (cause the empty one really is devoid of a lot of settings that need to be in place so it’s easiest to do the Win32 and weed the stuff out you don’t need)
I started a win32 console (w/ precompiled headers)
#include "stdafx.h"
#include <iostream>
int main()
{
std::cout <<"Hello World"<<std::endl;
return 0;
}
Edited
13 Years Ago
by jonsca because:
n/a
Nick Evan
4,005
Industrious Poster
Team Colleague
Featured Poster
13 Years Ago
Also when creating a console-app in VS be sure to UNcheck «use precompiled headers»
amzyz
0
Newbie Poster
13 Years Ago
Did you select a Win32 console application at the beginning? or an empty project? (cause the empty one really is devoid of a lot of settings that need to be in place so it’s easiest to do the Win32 and weed the stuff out you don’t need)
I started a win32 console (w/ precompiled headers)
#include "stdafx.h" #include <iostream> int main() { std::cout <<"Hello World"<<std::endl; return 0; }
I did a new one using the Win32 console application just in case i did something wrong there.. I didnt delete anything just added the iostream library and the cout line.. Still the same error.. Sorry..
Heres the code:
#include "stdafx.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Yada";
return 0;
}
amzyz
0
Newbie Poster
13 Years Ago
Also when creating a console-app in VS be sure to UNcheck «use precompiled headers»
I even unchecked it but still the same error with this code:
#include "stdafx.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Yada";
return 0;
}
jonsca
1,059
Quantitative Phrenologist
Team Colleague
Featured Poster
13 Years Ago
But now you want to add the std:: to see if it will work in this context. I don’t think the wide character main changed anything but try clearing it out for a regular main instead.
amzyz
0
Newbie Poster
13 Years Ago
#include "stdafx.h"
#include <iostream>
void main()
{
std::cout << "Yada";
getchar();
}
Works now but i have to press enter to close the console window anything else just gets typed into the console window as well.
#include "stdafx.h"
#include <iostream>
int main()
{
std::cout << "Yada";
return 0;
}
Opens and closes the console window in like a second..
Anyway the main problem is fixed THANK YOU everybody!! xx
JasonHippy
724
Practically a Master Poster
13 Years Ago
Wow, this thread went kinda crazy for a simple little thing didn’t it!
Heh heh!
Actually this might give you a more ‘expected’ result:
cout << "Hello World n";
/n is not the same as n
Oops, I didn’t spot that! I cut ‘n pasted the OPs code and made some very minor adjustments..Very shoddy of me! :$
I’ve tried what you said Jason and i get:
fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add ‘#include «stdafx.h»‘ to your source?
and when i do include that library i get the first error again
Um.. Yes, sorry, when I edited your code in my post I assumed that the inclusion of stdafx was one of your failed attempts at getting your hello to work, I didn’t realise that you were actually using precompiled headers in your program (for something as simple as a hello world it seems a bit overkill!). So yes, in that case if your program is set up to use precompiled headers then stdafx should be included!
However, as niek_e said:
Also when creating a console-app in VS be sure to UNcheck «use precompiled headers»
And Jonsca, regarding the std namespace thing…Yes I used ‘using namespace std’. It’s certainly not going to cause a problem with a one line «hello world» program. But you are right, I could have put a ‘using std::cout’ instead or explicitly specified std::cout in main itself, both are acceptable alternatives to opening up the entire std:: namespace!
Anyways, apologies for my trivial cut/paste errors…Normal service will be resumed shortly…Heh heh!
Cheers for now,
Jas.
amzyz
0
Newbie Poster
13 Years Ago
Yup its funny how sometimes errors are due to little stuff like that.. Anyway thanks again guys!!
13 Years Ago
#include <iostream>using namespace std; int main(){ cout << "Hello World /n"; return 0;}
#include <iostream>
using namespace std;
int main()
{
std::cout << "Hello World /n";
return 0;
}
Edited
13 Years Ago
by Nick Evan because:
Added code-tags
13 Years Ago
I am very sorry but why have you said my code is un organized?
Nick Evan
4,005
Industrious Poster
Team Colleague
Featured Poster
13 Years Ago
I am very sorry but why have you said my code is un organized?
For the third time: Read the rules
Under heading «Keep It Organized» :
For easy readability, always wrap programming code within posts in (code) (code blocks) and (icode) (inline code) tags.
Which is, what I was referring to.
Edited
10 Years Ago
by mike_2000_17 because:
Fixed formatting
13 Years Ago
I am sorry. I have used codetags!
Edited
13 Years Ago
by zobadof because:
n/a
Nick Evan
4,005
Industrious Poster
Team Colleague
Featured Poster
13 Years Ago
I am sorry. I have used codetags!
But not in post #16. I added them.
But enough of this, this thread is going off-topic. If you want to discuss this further, feel free to PM me.
Edited
13 Years Ago
by Nick Evan because:
n/a
13 Years Ago
Sorry I forgot. Please take of the Infraction and -1
11 Years Ago
make sure «using namespace std;» is spelled correctly along with all other directory
Reply to this topic
Be a part of the DaniWeb community
We’re a friendly, industry-focused community of developers, IT pros, digital marketers,
and technology enthusiasts meeting, networking, learning, and sharing knowledge.
- Forum
- General C++ Programming
- Error C2065 Cout Undeclared Identifier
Error C2065 Cout Undeclared Identifier
I recently downloaded VC++ and I keep getting this error whenever I try to compile my programs.
I wrote real quick simple program to demonstrate:
|
|
When I try to run it I get this:
c:Program FilesMicrosoft Visual Studio .NET 2003Vc7includescreen.h(56) : error C2065: ‘cout’ : undeclared identifier
c:Program FilesMicrosoft Visual Studio .NET 2003Vc7includescreen.h(56) : error C2065: ‘flush’ : undeclared identifier
Please help!
Try doing it this way around:
|
|
The error messages are referring to lines in your header file. Look there to spot the error.
#include iostream and use namespace std in screen.h.
Topic archived. No new replies allowed.
На чтение 3 мин. Просмотров 11 Опубликовано 15.12.2019
Итак, я полный noob для C ++, и я пытаюсь создать простую программу Hello World для задания. Мой код ниже:
По какой-то причине VS2017 выдает ошибку в cout , заявив, что он не определен. Я прочитал старые сообщения об этом и добавил в #include «stdafx.h , чтобы узнать, поможет ли это решить его по старому совету, но он продолжает давать мне ошибку. Любые идеи?
Снова полный noob, но есть несколько версий stdafx.h, которые появляются, когда я их ищу, вот что выглядит как «главный»
Содержание
- 1 ответ
- Решение
- 1 ответ
1 ответ
error C2065: ‘cout’: undeclared identifier является результатом отсутствия #include . Первой причиной может быть содержимое stdafx.h . Тот, который вы предоставили, я не очень уверен, как это связано с вашим main.cpp / project. Давайте начнем с нового проекта: . VS2017 IDE: создание нового проекта, типа проекта ConsoleApplication, & замените функцию main() на вашу.
Новый IDE VS2017 (15.8.2) свежий проект ConsoleApplication: ConsoleApplication1
Так что я полный новичок в C ++ и пытаюсь сделать простую программу «Hello world» для выполнения задания. Мой код ниже:
По какой-то причине VS2017 выдает ошибку в cout говоря, что это не определено. Я прочитал старые посты об этом и добавил в #include «stdafx.h чтобы увидеть, решит ли это это согласно старому совету, но он продолжает давать мне ошибку. Есть идеи?
Снова полный noob, но есть несколько версий stdafx.h, которые появляются, когда я ищу его, вот что выглядит как «главная»:
Решение
error C2065: ‘cout’: undeclared identifier является результатом отсутствия #include , Первой причиной может быть stdafx.h содержание. Тот, который вы предоставили, я не очень уверен, как это связано с вашим main.cpp / Проект. Начнем с нового проекта: …ID201 VS2017: создание нового проекта, типа проекта ConsoleApplication, & заменить main() работать с твоим.
IDE VS2017 (15.8.2) свежий проект ConsoleApplication: ConsoleApplication1
2 w1ckr [2018-08-31 17:44:00]
Итак, я полный noob для C++, и я пытаюсь сделать простую программу «Hello world» для задания. Мой код ниже:
По какой-то причине VS2017 выдает ошибку в cout , заявив, что она не определена. Я прочитал старые сообщения об этом и добавил в #include «stdafx.h чтобы узнать, поможет ли это решить его по старому совету, но он продолжает давать мне ошибку. Любые идеи?
Опять полный noob, но есть несколько версий stdafx.h, которые появляются, когда я его ищу, вот что выглядит как «главное»:
c++ visual-studio stl visual-studio-2017 cout
1 ответ
5 Amit G. [2018-08-31 18:38:00]
error C2065: ‘cout’: undeclared identifier является результатом отсутствия #include . Первой причиной может быть контент stdafx.h . Тот, который вы предоставили, я не уверен, как это связано с вашим main.cpp /project. Начните с нового проекта. VS2017 IDE: создайте новый проект, тип проекта ConsoleApplication и замените функцию main() вашим.
Проект VS2017 IDE (15.8.2) свежий ConsoleApplication: ConsoleApplication1