#include

转载于:http://www.cnblogs.com/charley_yang/archive/2010/12/08/1900715.html

1.从功能性的角度来讲包含了一系列模板化的I/O类,相反地只仅仅是支持字符流。另外,输入输出流的C++标准规范接口在一些微妙的细节上都已改进,因此,在接口和执行上都是不同的。最后,的各组成都是以STL(Standard Template Library,标准模板库)的形式声明的,然而的各组成都是声明成全局型的。

因为这些实质上的不同,你不能在一个程序中混淆使用这两个库。做为一种习惯,在新的代码中一般使用,但如果你处理的是过去编写的代码,为了继承可以用继续用就保持代码的一致性。

/////////////////////////////

表示你使用的是标注命名空间,也就是在程序开始应该有这么一句话

using namespace std ; 这是遵循c++标准的

则没有遵循c++标准

/////////////////////////////

是旧的C头文件,对应的是基于char*的字符串处理函数;

是包装了std的C++头文件,对应的是新的strng类;

是对应旧的C头文件的std版本。

(标准化委员会为了拉拢人心,吸引更多的人入会,决定为包装了std的那部分标准库构建新的头文件名。将现有C++头文件名中的.h去掉,所以就出现了< iostream.h> 和< iostream > 等很多双胞胎。对于C头文件,采用同样方法但在每个名字前还要添加一个C,所以C的 变成了。)

#include 和 #include

前一个不是c++标准中的,后一个在c++标准中

还有就是平时我们所用的两种情况,当有输出和输入流时就要注意了。

换成#include ,要加一句using namespace std;或把cout改成std::cout,end改成std::endl等等

#include

c++标准化之前的使用方式.

#include

using namespace std;

这个必须同时出现.c++标准化后推荐使用的方式.主要是因为namespace的引入.

#include <..> 是从标准库里直接提取头文件

#include ".. "是先从源文件当前目录提取头文件,再从标准库里提取。


一般自己写的文件用 " "

2.为什么下面这段代码


复制代码

1 #include <string.h> 
2 void main() 
3 { 
4      string aaa= "abcsd d"; 
5      printf("looking for abc from abcdecd %sn", 
6          (strcmp(aaa,"abc")) ? "Found" : "Not Found"); 
7 }

复制代码


不能正确执行,说是string类型没有定义

而下面:

复制代码

1 #include <string> 
2 using namespace std; 
3 void main() 
4 { 
5      string aaa= "abcsd d"; 
6      printf("looking for abc from abcdecd %sn", 
7          (strcmp(aaa,"abc")) ? "Found" : "Not Found"); 
8 }

复制代码
这里的string编译器就认识了,但是strcmp就不认识了呢?

---------------------------------------------------------------

一般一个C++的老的带“.h”扩展名的库文件,比如iostream.h,在新标准后的标准库中都有一个不带“.h”扩展名的相对应,区别除了后者的好多改进之外,还有一点就是后者的东东都塞进了“std”名字空间中。

但唯独string特别。

问题在于C++要兼容C的标准库,而C的标准库里碰巧也已经有一个名字叫做“string.h”的头文件,包含一些常用的C字符串处理函数,比如楼主提到的strcmp。

这个头文件跟C++的string类半点关系也没有,所以并非的“升级版本”,他们是毫无关系的两个头文件。

要达到楼主的目的,比如同时:

#include

#include

using namespace std;

或者

#include

#include

其中是与C标准库的相对应,但裹有std名字空间的版本。

转自:http://www.cnblogs.com/leven20061001/archive/2012/09/26/2703685.html
原文链接: https://www.cnblogs.com/wyuzl/p/7877563.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/263920

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 下午4:09
下一篇 2023年2月14日 下午4:09

相关推荐