问题表现
没怎么用过C++写过完整的项目,今天闲来无事,便创建个c++的工程玩玩,结果一个简单的打印输出就给卡住了,无法打开文件“iostream.h”,““cout” 未声明的标识符”,这是什么鬼。。。
首先第一个问题,无法打开文件“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 <stdio.h>
#include <Windows.h>
#include <iostream>
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。。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)