C2065'cout':未声明的标识符

w1c*_*ckr 2 c++ stl cout visual-studio visual-studio-2017

所以我是C++的完整菜鸟,我正在尝试为作业制作一个简单的"Hello world"程序.我的代码如下:

#include "stdafx.h"
#include <iostream>
using namespace std;
int main() {
    cout<<"hello world!";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,VS2017正在抛出一个错误cout,说这是未定义的.我已经对旧帖子进行了一些阅读,并添加了#include "stdafx.h以查看是否可以按照旧建议解决它,但它继续给我错误.有任何想法吗?

编辑:

再一次完整的菜鸟,但是当我搜索它时会出现多个版本的stdafx.h,这里看起来像是"主要"的:

  // stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently

#pragma once

#ifndef STRICT
#define STRICT
#endif

#include "targetver.h"

[!if SERVICE_APP]
#define _ATL_FREE_THREADED
[!else]
#define _ATL_APARTMENT_THREADED
[!endif]

#define _ATL_NO_AUTOMATIC_NAMESPACE

#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS  // some CString constructors will be explicit

[!if PREVIEW_HANDLER || THUMBNAIL_HANDLER || SEARCH_HANDLER]
#ifdef _MANAGED
#error File type handlers cannot be built as managed assemblies.  Set the Common Language Runtime options to no CLR support in project properties.
#endif

#ifndef _UNICODE
#error File type handlers must be built Unicode.  Set the Character Set option to Unicode in project properties.
#endif

#define SHARED_HANDLERS

[!endif]
[!if SUPPORT_MFC]
#include <afxwin.h>
#include <afxext.h>
#include <afxole.h>
#include <afxodlgs.h>
#include <afxrich.h>
#include <afxhtml.h>
#include <afxcview.h>
#include <afxwinappex.h>
#include <afxframewndex.h>
#include <afxmdiframewndex.h>

#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdisp.h>        // MFC Automation classes
#endif // _AFX_NO_OLE_SUPPORT
[!endif]
[!if SUPPORT_COMPLUS]

#include <comsvcs.h>
[!endif]

#define ATL_NO_ASSERT_ON_DESTROY_NONEXISTENT_WINDOW

#include "resource.h"
#include <atlbase.h>
#include <atlcom.h>
#include <atlctl.h>
Run Code Online (Sandbox Code Playgroud)

Ami*_* G. 5

error C2065: 'cout': undeclared identifier是缺席的结果#include <iostream>.第一个原因可能是stdafx.h内容.你提供的那个,我不太确定它与你的main.cpp/项目有什么关系.让我们从一个新项目开始:... VS2017 IDE:创建新项目,ConsoleApplication项目类型,并main()用您的函数替换该功能.

VS2017 IDE(15.8.2)全新的ConsoleApplication项目:ConsoleApplication1

// ConsoleApplication1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

using namespace std;

int main() {

    cout << "hello world!";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

stdafx.h :( 由IDE生成)

// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#pragma once

#include "targetver.h"


// TODO: reference additional headers your program requires here
Run Code Online (Sandbox Code Playgroud)

stdafx.cpp :( 由IDE生成)

// stdafx.cpp : source file that includes just the standard includes
// ConsoleApplication1.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information

#include "stdafx.h"

// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
Run Code Online (Sandbox Code Playgroud)

targetver.h :( 由IDE生成)

#pragma once

// Including SDKDDKVer.h defines the highest available Windows platform.

// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.

#include <SDKDDKVer.h>
Run Code Online (Sandbox Code Playgroud)

**此代码运行完美.**

-

"当我搜索它时会出现多个版本的stdafx.h" - 你的意思是什么?在你的项目中?在网上?你不能只stdafx.h从互联网上拿一个.stdafx.h内容是根据项目量身定制的,而非通用的 例如,我在上面提供的是IDE默认的新ConsoleApplication项目stdafx.h.您可以根据项目需要添加到文件中.