注册 登录
编程论坛 C++教室

c++初级问题,希望得到帮助。

飘到心海 发布于 2009-09-05 17:49, 1175 次点击
为什么这个程序用Visual c++6.0编译总是出错啊?
#include<iostream.h>
using namespace std;
int main()
{
  cout<<"Hello!\n";
  cout<<"Welcome to c++!\n";
}
为什么编译结果总是又一个错误:“std is not a namespace”.这是为什么呢。上面那个程序是书上的例题。是我软件的问题吗?希望得到大家的解答。
10 回复
#2
bccrf2009-09-05 19:11
建议你用Microsoft Visual Studio 2005,这个不错。
我用的就是它。
你刚才的代码我在上面运行了。没有什么错误啊!
你可以换种写法例如:
#include<iostream.h>
using std::cout;
int main()
{
  cout<<"Hello!\n";
  cout<<"Welcome to c++!\n";
}
可以把"using namespace std;"换成"using std::cout;"
估计就没有什么问题啦!
#3
debroa7232009-09-05 20:55
把VC的include和LIB目录加入VC的系统目录里,它在“工具”=》“选项”=》“目录”窗口里添加
#4
blueboy820062009-09-05 21:14
以下是引用飘到心海在2009-9-5 17:49的发言:

#include<iostream.h>
using namespace std;
.


你要么

#include<iostream.h>

要么

#include<iostream>
using namespace std;
#5
最左边那个2009-09-05 22:14
回复 2楼 bccrf
你能给我解释下 using namespace std 的意思嘛?
我是这么理解它的,我认为你要用这个, 说明你之前定义std-----namespace std
可现在没有,所以才出来未定义或不存在的报错!
我不知道这样理解对不对,你能给我解释一下嘛?
#6
最左边那个2009-09-05 22:16
同意第4楼说法
#7
擦除笔迹2009-09-06 00:21
百度知道里搜的答案:
ostream.h
是很久以前的头文件,当时新的C++标准还没有出炉,所以依然保持和旧有的C风格的头文件一样的后缀“.h”;然而,新C++标准出台后,为了和以前的,特别是C语言中的头文件以示区别,统统将“.h”后缀去掉了。并且,还引入了“命名空间”的概念——namespace

这是因为随着库的不断增大,难免会遇到“命名冲突”的问题,引入命名空间,就是说:某个变量名或常量名只在它所属的命名空间下,才是有意义的。离开了它的命名空间,该名称不可用——这就解决了命名冲突的问题。

因此,当你阅读一些旧的书籍时,会发现大多使用
#include <iostream.h>
因为当时新标准还没有出台;而阅读近几年的书籍时,都是
#include <iostream>
using namespace std;

意思是——使用标准的全局命名空间!若你依然使用带后缀“.h”的预处理指令,那么编译器可能会通知:“XXX.h”文件不存在。

简言之,就是说,当你使用C语言的头件时,就带上“.h”;若使用C++的头文件时,就不要带后缀,而是声明使用所属的命名空间,一般写上
using namespace std;
这句就可以了。
#8
shaojin20052009-09-06 12:34
晕  <iostrean.h>这个头文件是C语言中的,而名字空间namespace这个概念是c++中的,所以用了老式的头文件就不需要再加名字空间了
#9
a26960262009-09-09 15:42
以下是引用blueboy82006在2009-9-5 21:14的发言:

 
 
你要么
 
#include
 
要么
 
#include
using namespace std;
是的
  
我学的第一课就是这个
#10
dk3132654782009-11-11 17:09
学习了
#11
小兰012009-11-11 18:14
using namespace std;
就是申明命名空间std,它里面防了一些关于输入输出的操作,建议你看下这本书,
<c++编程思想>,我看了,但没记住. 这本书里有详细的解释.
c#中命名空间的作用:当你创建一个WinForm程序的时候:
using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

1、System 命名空间包含基本类和基类,这些类定义常用的值和引用数据类型、事件和事件处理程序、接口、属性和异常处理。
2、System.Collections.Generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能。
3、 命名空间提供用于实现组件和控件运行时和设计时行为的类。此命名空间包括用于实现属性和类型转换器、绑定到数据源以及授权组件的基类和接口。
4、System.Data 命名空间提供对表示 结构的类的访问。通过 可以生成一些组件,用于有效管理多个数据源的数据。
5、System.Drawing 命名空间提供了对 GDI+ 基本图形功能的访问。在 System.Drawing.Drawing2D、System.Drawing.Imaging 以及 System.Drawing.Text 命名空间中提供了更高级的功能。
6、System.Text 命名空间包含表示 ASCII、Unicode、UTF-7 和 UTF-8 字符编码的类;用于将字符块转换为字节块和将字节块转换为字符块的抽象基类;以及操作和格式化 String 对象而不创建 String 的中间实例的 Helper 类。
7、System.Windows.Forms 命名空间包含用于创建基于 Windows 的应用程序的类,以充分利用 Microsoft Windows 操作系统中提供的丰富的用户界面功能。
1