iostream,iostream.h,stdio.h的纠葛

include <iostream.h>标准输入输出流
include 标准输入输出流

C++中为了避免名字定义冲突,特别引入了“名字空间的定义”,即namespace。

当代码中用<iostream.h>时,输出可直接引用cout<<x;
//<iostream.h>继承C语言的标准库文件,未引入名字空间定义,所以可直接使用。

当代码中引入时,输出需要引用std::cout<<x;
如果还是按原来的方法就会有错。

std:

在C++中,std是C++标准库的命名空间(namespace),所有标准库中的函数、类、对象等都定义在std命名空间中。在使用标准库中的元素时,需要加上std命名空间的前缀,例如:

include
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}

在这个例子中,cout和endl都是在std命名空间中定义的,因此需要使用std命名空间的前缀。
为了避免在每个使用标准库元素的地方都使用std前缀,也可以使用using指令:

include

using namespace std;
int main() {
cout << "Hello, world!" << endl;
return 0;
}

这个例子中,在使用标准库元素时,不需要使用std前缀,而是使用了using指令把整个std命名空间引入到当前的命名空间中。需要注意的是,使用using指令可能会导致命名冲突等问题,因此应该谨慎使用。

使用时,引入std::有以下方法:

using namespace std;
cout<<x;
2.
using std::cout;
cout<<x;
3.
最基本的std::cout<<x;

这回你该知道为什么通常用#include 时,要用using namespace std;了吧。如果你不用这个,就要在使用cout时,用后两种方法了。
其他头文件也是同样的道理。
(有“.h”的就是非标准的,C的标准库函数,无“.h”的,就要用到命令空间,是C++的。
还有一部分不完全是有“.h”和没“.h”的差别。
例如:math.h和cmath)
转载自:http://zhidao.baidu.com/question/115260239.html
stdio.h是C语言的东西,输入输出是这样的printf(...);,scanf(...);
iostream.h是C++的东西,输入输出是这样的cout<<....;,cin>>.....;
stdio.h是C的标准I/O库,是以函数的方式向buffer写入或读取字符。
iostream是C++的标准I/O库,引入了输入/输出流的概念,是一个类库,是以类方法从streambuf中读取,写入字符。

posted @ 2023-03-16 20:45  Xuuio  阅读(24)  评论(0编辑  收藏  举报