踩了个C++的未定义标识符"cout"的坑

问题表现

没怎么用过C++写过完整的项目,今天闲来无事,便创建个c++的工程玩玩,结果一个简单的打印输出就给卡住了,无法打开文件“iostream.h”,““cout” 未声明的标识符”,这是什么鬼。。。
踩了个C++的未定义标识符

首先第一个问题,无法打开文件“iostream.h”。
找了下外部依赖文件,确实没有文件“iostream.h”,倒是有“iostream”,OK,去掉.h,再编译一遍。
结果,无法打开的问题消失了,但第二个问题还存在。

找找资料看看iostream的用法,好吧,需要加 using namespace std; OK,编译通过,运行输出正常。
或者不加using namespace std;的话,可用此替代 std::cout << “I look so ugly that i couldn’t send pics to you.” << std::endl;

#include "stdafx.h"
#include 
#include 
#include 
using namespace std; 

int _tmain(int argc, _TCHAR* argv[])
{
	cout << "I look so ugly that i couldn't send pics to you." << endl;
	
	Sleep(10000);
	
	return 0;
}

在这里插入图片描述

iostream和iostream.h的区别

好吧,被这么折腾下,好奇为什么其他的引用都会有.h,怎么iostream却不需要。
找了一些资料,微软官网只有iostream库,没有iostream.h,以下是民间的说法。(引用原文)
C++的标准类库被修订了两次,有两个标准C92和C99,这两个库现在都在并行使用,用 .h 包含的是c92(旧文件) ,不带 .h 的是c99的头文件(新标准),对于普通用户来说这两者没有什么区别,区别是在内部函数的具体实现上。旧的C++头文件是官方明确反对使用的,但旧的C头文件则没有(以保持对C的兼容性)。据说从 Visual C++ .NET 2003 开始,移除了旧的 iostream 库。(我说怎么在微软的官网怎么都找不到iostream.h。。)

你可能感兴趣的:(C/C++)