帮忙看一个头文件包含问题

smileti 2004-08-31 09:33:11
程序很简单,是这样的:
#include <iostream>
#include <string>

using namespace std;

int main()
{
string username;

cout << "please enter your name: " ;
cin >> username;
cout << "hello " << username << endl;
return 0;

}

然而把头文件改成:
#include <iostream.h>
#include <string.h>
程序就通不过了
请给我讲讲这其中的区别吧
我是在vc6下编译的

...全文
80 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pc2s 2004-08-31
  • 打赏
  • 举报
回复
iostream.h是早期版本的头文件,在新标准的C++中,他已经被iostream替换,并且加入了std的名称空间(即,如果使用iostream,就必须加std)

string和string.h则是两个完全不同的东西,前者是STL的string类,后者是ANSI C的字符串操作函数库。如果你用到了string类型,就必须用string和std名称空间。
oneofcsdn 2004-08-31
  • 打赏
  • 举报
回复
不带.h的是c++现在的标准库,在一个被称为std 的名字空间中声明和定义的。
lemon520 2004-08-31
  • 打赏
  • 举报
回复
主要是和<string> 和<string.h>这两个头文件有关
<string>是标准库的东西,封装在std命名空间中,是string类型的定义
<string.h>是标准C函数库,不含string类型,只有对字符串进行操作的函数,如strlen,strcpy,strcmp.....
zzsu7710 2004-08-31
  • 打赏
  • 举报
回复
我个人认为如果改成#include <iostream.h>#include <string.h>,那么就不需要using namespace std;此时调用的是MFC的类,而#include <iostream>
#include <string>

using namespace std;则是调用标准c++的类
pacman2000 2004-08-31
  • 打赏
  • 举报
回复
string.h是C语言里面的头文件,里面是strlen,strcpy等等函数声明。
string才是C++里面string类的声明。

65,184

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧