#include iostream<iostream>,using namespace;这两句句代码分别是什么作用?

  对于一个存在着标准输入输出的C++控制台程序,一般会在#include &iostream&的下一行发现一句话,using namespace std。这句话其实就表示了所有的标准库函数都在标准命名空间std中进行了定义。其作用就在于避免发生重命名的问题。
  1. 关于namespace
  C++引入了命名空间namespace主要解决了多个程序员在编写同一个项目中可能出现的函数等重名的现象。解决方法就是加上自己的命名空间。比如下面的例子:
#include &iostream&
namespace ZhangSan
int a=10; //张三把10赋值给了变量a
namespace LiSi
int a=5; //李四把10赋值给了变量a
void main()
cout&&"张三定义的a="&&ZhangSan::a&&
cout&&"李四定义的a="&&LiSi::a&&
cout&&"主函数定义的a="&&a&&
  上例中的&ZhangSan::a&和&LiSi::a&分别表示了调用张三命名空间中的a变量和李四命名空间中的a变量。这样的好处显而易见,那就是虽然张三和李四这两个程序员都定义了一个变量a,但是并不会出现重名的危险。
运行结果为:
  2. 关于using namespace *
  顾名思义,using namespace * 就表示释放命名空间* 中间的东西。好处在于我们在程序里面就不用在每个函数的头上都加上*::来调用。比如说如果上面那个程序,如果我们不在using namespace std,那么我们就需要在主函数中的标准输出流cout函数前面加上std,写成
表示调用std空间里面的标准输出流cout。但是有些时候我们也不能图这个方便,比如说如果在主函数中将命名空间ZhangSan和LiSi的中所定义的变量释放出来,如下例1:
#include &iostream&
namespace ZhangSan
int a=10; //张三把10赋值给了变量a
namespace LiSi
int a=5; //李四把10赋值给了变量a
void main()
using namespace ZhangS
using namespace LiSi;
这个程序输出结果为:
如果我们在主函数中把 int a=1给删除,如下例2:
#include &iostream&
namespace ZhangSan
int a=10; //张三把10赋值给了变量a
namespace LiSi
int a=5; //李四把10赋值给了变量a
void main()
using namespace ZhangS
using namespace LiSi;
会发现根本就不会通过编译,输出的错误信息为:
error C2872: &a&: 不明确的符号
  分析可以看出,上面这个例2会引起歧义。因为ZhangSan中间的a被释放出来,同理LiSi中间的a也被释放出来了。那么编译器就不知道到底哪个才是需要输出的a,自然就会引起歧义了。同理,在例1中,编译器同样不知道到底哪个才是需要输出的a,于是它只采用了主函数中自己定义的a,这样程序也不会报错,但是只会输出1,自然结果就如上面的图所示了。
阅读(...) 评论()源程序:typedef unsigned short USHORT;#include&iostream&_百度知道
源程序:typedef unsigned short USHORT;#include&iostream&
【原题,这是为什么为什么在#include之前会放一个语句:请编写一个计数器Counter类,我的函数体运行不了?不放的话
我有更好的答案
T fun( } template&lt,E),class E&T.fun(3,int& Pra&h&,int&gt:fun(int t:
typedef T R;&#47,E&;/
return s,E c){
/ T Pra& template &lt,class E& qqq(2,E& } void main() {
Pra&号 template&class T;&qqq:
cout& b+c:,class E&class T,E&T;/ /T,必须有template& &#47::;class T;当不在模板内实现时;&&&#47:;& },3),class E&gt,3)&class T,class E&gt,class E& Pra&:Pra(void)这样的构造函数
s=t+a;:R h = 0; Pra&lt:Pra(T
cout&没有template&lt,int&gt,T a)
/当不在模板内实现时;/
&#47,必须有template& class
Pra {class T;要有;
Pra(T;iostream&class T;&lt,T a);int#include&lt
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C++标准库很大。非常大。难以置信的大。怎么个**?这么说吧:在C++标准中,关于标准库的规格说明占了密密麻麻300多页,这还不包括标准C库,后者只是 & &作为参考 &(老实说,原文就是用的这个词)包含在C++库中。
当然,并非总是越大越好,但在现在的情况下,确实越大越好,因为大的库会包含大量的功能。标准库中的功能越多,开发自己的应用程序时能借助的功能就越多。C++库并非提供了一切(很明显的是,没有提供并发和图形用户接口的支持),但确实提供了很多。几乎任何事你都可以求助于它。
在归纳标准库中有些什么之前,需要介绍一下它是如何组织的。因为标准库中东西如此之多,你(或象你一样的其他什么人)所选择的类名或函数名就很有可能和标准库中的某个名字相同。为了避免这种情况所造成的名字冲突,实际上标准库中的一切都被放在名字空间std中(参见条款28)。但这带来了一个新问题。无数现有的C++代码都依赖于使用了多年的伪标准库中的功能,例如,声明在 &iostream.h& , &complex.h& , &limits.h& 等头文件中的功能。现有软件没有针对使用名字空间而进行设计,如果用std来包装标准库导致现有代码不能用,将是一种可耻行为。(这种釜底抽薪的做法会让现有代码的程序员说出比 & &可耻 & & 更难听的话)
慑于被激怒的程序员会产生的破坏力,标准委员会决定为包装了std的那部分标准库构件创建新的头文件名。生成新头文件的方法仅仅是将现有C++头文件名中的 & .h & 去掉,方法本身不重要,正如最后产生的结果不一致也并不重要一样。所以 &iostream.h& 变成了 &iostream& , &complex.h& 变成了 &complex& ,等等。对于C头文件,采用同样的方法,但在每个名字前还要添加一个c。所以C的 &string.h& 变成了 &cstring& , &stdio.h& 变成了 &cstdio& ,等等。最后一点是,旧的C++头文件是官方所反对使用的(即,明确列出不再支持),但旧的C头文件则没有(以保持对C的兼容性)。实际上,编译器制造商不会停止对客户现有软件提供支持,所以可以预计,旧的C++头文件在未来几年内还是会被支持。
& #include&iostream.h&是旧的头文件
#include &iosteam& using namespace std;是新的头文件
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:126927次
积分:1767
积分:1767
排名:第15273名
原创:52篇
评论:38条
(1)(2)(2)(1)(3)(3)(1)(2)(1)(1)(1)(1)(5)(1)(6)(1)(2)(1)(12)(8)C++里#include&iostream& #include&iomanip& 分别是什么意思,什么时候用_百度知道
C++里#include&iostream& #include&iomanip& 分别是什么意思,什么时候用
在c++程序里面经常见到下面的头文件#include &iomanip&这里面iomanip的作用比较多:主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制头文件,就像C里面的格式化输出一样.以下是一些常见的控制函数的:dec 置基数为10 相当于&%d&hex 置基数为16 相当于&%X&oct 置基数为8 相当于&%o&setfill(c) 设填充字符为csetprecision(n) 设显示小数精度为n位setw(n) 设域宽为n个字符 这个控制符的意思是保证输出宽度为n。如:cout&&setw(3)&&1&&setw(3)&&10&&setw(3)&&100; 输出结果为1 10100 (默认是右对齐)当输出长度大于3时(&&1000),setw(3)不起作用。setioflags(ios::fixed) 固定的浮点显示setioflags(ios::scientific) 指数表示setiosflags(ios::left) 左对齐setiosflags(ios::right) 右对齐setiosflags(ios::skipws 忽略前导空白setiosflags(ios::uppercase) 16进制数大写输出setiosflags(ios::lowercase) 16进制小写输出setiosflags(ios::showpoint) 强制显示小数点setiosflags(ios::showpos) 强制显示符号 举例:#include &iostream&#include &iomanip&int main() { cout&&12345.0&&//输出&12345&cout&&setiosflags(ios::fixed)&&setprecision(3)&&1.2345&&输出&1.235&cout&&setiosflags(ios::scientific)&&12345.0&&//输出&1.4 &cout&&setprecision(3)&&12345.0&&//输出&1.235e+004 &return 0; }
其他类似问题
为您推荐:
提问者采纳
有谁用void main(),作用是调用库函数(如iostream中含有cin,你去问问玩ACM的,任何时候都用int main() 这是标准用法,即便你看到很多书上这么用,cout函数;与#include&lt,不要用void main();iomanip&iostream>iomanip含有new函数)using namespace std是标准库名字空间至于最后一个问题;是两个头文件#include&lt
using namespace std什么时候用这个,还有什么事new函数
如果你前面头文件是#include&xxx&这种类型,而不是#include&xxx.h&这种类型,你就用你刚开始学习可以认为他跟头文件是配套的,当然你经过慢慢学习就可以知道using namespace std完全可以不用(现在你先认为它必须有吧),至于new()是开辟空间用的,你现在听不懂很正常,你用到new()还需学习一段时间。给你个建议,找本C++的书从头看起,千万别想一下就学会,看你的问题你应该没接触过面向过程或对象的程序设计语言,这样你学习C++应该不简单,多上机,多看书(不懂就多看几遍或者上网查相关知识),只有坚持下来,你后边才会感觉到c++给你带来的成就感,加油!
iostream的相关知识
其他4条回答
汗 建议你还是先学点CPP编程基础吧哪怕只看了10页书 你也不需要问任何人了
饿,看了100页,哎,还有什么时候要return啊
return 表示返回一个值 函数需要返回值时用
#include&iostream&是编译预处理,将文件iostream的代码嵌入到程序中该指令所在的地方。iostream是C++系统定义的一个头文件。 #include&iomanip&也是同iostream一样的系统所带头文件。因而使用该文件里面的文件,就必须包含该头文件是针对命名空间std的指令,意思是使用命名空间std。手打的啊。,。。很详细了,求给分啊。。。。 int main是返回int 函数类型需要用return 0;。。void 返回类型为空
百度一下 你就知道
使用setprecision(n)可控制输出流显示浮点数的数字个数,setprecision(n)是格式控制符,所以要在程序中加入头文件 iomanip.h,另外最后一句输出语句setprecision(n)的用法也不太对,应该在后面指明需要格式输出的是哪个变量。修改后的程序如下:#include &iostream&#include &iomanip&void main(){ double a=3.1415926; cout&&setprecision(3)&&a&&}
编译运行都没问题,运行结果是3.14
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁#include&iostream& using namespace std; { cout&&“hello”&&endl; }_百度知道
#include&iostream& using namespace std; { cout&&“hello”&&endl; }
哪里错了,程序说最后错的,怎么也搞不懂,这么简单的程序
&lt.com/zhidao/wh%3D600%2C800/sign=56f2bb570ef41bd5da06e0f261eaadf3/f2deb48f8c5494eedbfe0fe98257int&&main(){&&cout&lt://d;iostream&&using&/zhidao/wh%3D450%2C600/sign=fcb39dbc2512/f2deb48f8c5494eedbfe0fe98257efc.jpg" esrc="见谅<img class="ikqb_img" src="/zhidao/pic/item/f2deb48f8c5494eedbfe0fe98257efc#include&lt
提问者采纳
还有主函数没必要返回就用&iostream& &void main() {
cout&&lt,要英文格式下的;hello&& } 注意标点格式;endl#include&lt
提问者评价
百度就是好啊
来自团队:
其他类似问题
为您推荐:
其他2条回答
&iostream&gt;int main { cout&lt,没主函数啊大哥; return 0;&“hello”&lt,你这么犀利的啊#include&lt
你写了main函数吗?
endl的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 include iostream 的文章

 

随机推荐