首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这句编译通不过!求解决啊解决方案

2012-04-23 
这句编译通不过!求解决啊!#includeiostream#includeiomanip#includestringusing namespace std与#i

这句编译通不过!求解决啊!
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;

#include<iostream>
#include<iomanip>
#include<string.h>//带h与不带有什么区别么??
using namespace std;
有什么区别啊,为什么下面的不能做下面的操作啊
string str;
cin>>str;
这句编译通不过!

[解决办法]
带.h会认为是c的string头文件了。
[解决办法]
#include<string.h>头文件里定义的是字符串操作的方法,如strlen,strcpy之类的
而#include<string>是带有string这个类的定义吧
[解决办法]
基本上 string和string.h是木有啥子关系滴,所以用string.h时会编译不通过,
string.h头文件里面只是定义的是字符串操作方法
string.h - declarations for string manipulation functions
[解决办法]
<cstring>是<string.h>的C++版头文件,它们里面定义了常用的字符串操作函数等
<string>是string类头文件,它里面定义了string这个C++类

带与不带“.h”,就是完全不同的两个东西
[解决办法]

探讨
引用:

带.h会认为是c的string头文件了。
那可不可以两个都一起带上啊!

[解决办法]
请自行查看include目录下不带.h的文件cstring和string
[解决办法]
string.h中包含的是C语言中字符串实现的一些函数,而string中包含的是C++中关于字符串类的实现方法。
虽说都是字符串的实现,但是有着本质的区别,C++用的是面向对象的思想,而C用的是过程化得思想。
楼主写的:
string str;
cin> > str;
代码的意思是声明一个名称为str的string类的对象,要用到C++关于string类的声明,所以要包含string头文件,string.h是C的头文件,并不包含string类的实现。

热点排行