iostream与iostream.h的区别详细解析
本文导语: C++的标准类库被修订了两次,有两个标准 C92和C99,这两个库现在都在并行使用,用 .h 包含的是c92 ,不带 .h 的是c99的头文件,对于普通用户来说这两者没有什么区别,区别是在内部函数的具体实现上。旧的C++头文件是官方明确...
C++的标准类库被修订了两次,有两个标准 C92和C99,这两个库现在都在并行使用,用 .h 包含的是c92 ,不带 .h 的是c99的头文件,对于普通用户来说这两者没有什么区别,区别是在内部函数的具体实现上。旧的C++头文件是官方明确反对使用的,但旧的C头文件则没有(以保持对C的兼容性)。据说从 Visual C++ .NET 2003 开始,移除了旧的 iostream 库。其实编译器制造商不会停止对客户现有软件提供支持,所以在可以预计的将来,旧的C++头文件还会嚣张一段时间。如果能明白字符串头文件的使用,举一反三,其他的也差不多会用了:
是旧的C/C++头文件,对应的是基于char*的字符串处理函数;
是包装了std的C++头文件,对应的是新的strng类;
是对应旧的C头文件的std版本。
如果编译器都同时支持< iostream >和< iostream.h >,那使用#include < iostream >,得到的是置于名字空间std下的iostream库的元素;如果使用#include < iostream.h >,得到的是置于全局空间的同样的元素。在全局空间获取元素会导致名字冲突,而设计名字空间的初衷正是用来避免这种名字冲突的发生。
想象讯雷下载软件一样,先从服务器确定下载文件的大小,初始时即保存文件,全部填充0,多个线程下载数据直接写入文件,对自己线程负责下载的那段文件片的0进行改写,其中就涉及到文件共享写的操作
出现的问题时:
vc7.1 已经不支持 filebuf::sh_read等关键字,不知在vc7下若要用文件流来对文件进行非独占读和写操作该如何实现?
而:
vc6.0中的iostream.h
filebuf::sh_read
filebuf::sh_write
filebuf::sh_note
filebuf::sh_openprot
无论自己是用vc6或者vc7的IDE
当用到标准的输入输出和文件流时都是:
include
include
using namespace std;
有两种用法:
A:
include
include
B:
include
include
A是标准用法,B是老式用法。
如果用了,则一定要引入命名空间,即"using namespace std;".
如果用了,则不那引入命名空间,否则会引起编译错误,提示找不到命名空间,例程如下:
//情况一:使用和命名空间
#include
using namespace std;
int main()
{
cout
您可能感兴趣的文章:
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。