在编程中遇到了个小问题。当头文件是#include <iostream.h>时,提示编译错误。尝试把”.h”去掉,编译正确。
不禁要问,它们到底有什么区别呢?上网查了查,得到以下结论:
iostream.h为非法的输入输出流,.h的头文件是C语言格式的,由于当时还没有命名空间这个说法,所以也就不存在std这个命名空间标示符。所以用iostream.h也就用不着std或者using namespace std.
iostream为标准输入输出流,它是C++规范的带有命名空间的头文件,它包含在std命名空间内。
iostream流包含cin和cout输入输出流,使用cout的时候前面必须加std。
iostream是C++格式的头文件,而iostream.h是C语言格式的头文件,由于C++格式的iostream是规范的带有命名空间的头文件,所以在使用iostream标准库中的cout对象时,要加上命名空间标示符std,而C格式的非标准的输入输出流iostream.h则不用.
值得一提的是,
iostream.h 库从visual c++ .net 2003以后删除。
iostream是新的STL用的库。
fstream.h、iomanip.h、ios.h、iostream.h、istream.h、ostream.h、streamb.h、strstrea.h 被删除升级为, (<fstream>;、<iomanip>;、<ios>;、<iosfwd>;、<iostream>;、<istream>;、<ostream>;、<sstream>;、<streambuf>;、 <strstream>
扩展名.h全部被删除了。