| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1717 人关注过本帖
标题:求助:C++中endl和\n的区别
只看楼主 加入收藏
Krift
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-21
收藏
 问题点数:0 回复次数:13 
求助:C++中endl和\n的区别
本人新手菜鸟一枚,最近刚入门C++、、

之前看到就在本论坛看到网友说endl=\n+flush,\n只是换行并不清空缓冲区,但是在谭浩强的C++程序设计中说的(划线部分),貌似\n也清空缓冲区???
图片附件: 游客没有浏览图片的权限,请 登录注册


这该怎么理解啊?


搜索更多相关主题的帖子: 程序设计 缓冲区 
2012-11-22 21:22
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:0 
如果不搞研究就先背下

www.qunxingw.wang
2012-11-22 21:41
mw1159216645
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2012-11-19
收藏
得分:0 
endl表示换行    \n 相当于空格
2012-11-23 09:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
endl=\n+flush 肯定是没错的,因为C++标准中就是这些写的
ISO/IEC 14882:2003(E)第27.6.2.7章节:
namespace std {
  template <class charT, class traits>
    basic_ostream<charT,traits>& endl(basic_ostream<charT,traits>&os);
}
Effects: Callsos.put(os.widen('\n') ), then os.flush().
Returns: os.
The effect of executingcout << endl is to insert a newline character in the output sequence controlled by cout, then synchronize it with any external file with which it might be associated.

2012-11-23 09:34
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
收藏
得分:0 
请问版主  这个标准在那里有 我也想看看



之前只知道 ends endl 和flush 学习一下 还有'\n'

以下是引用rjsp在2012-11-23 09:34:19的发言:

endl=\n+flush 肯定是没错的,因为C++标准中就是这些写的
ISO/IEC 14882:2003(E)第27.6.2.7章节:
namespace std {
  template <class charT, class traits>
    basic_ostream<charT,traits>& endl(basic_ostream<charT,traits>&os);
}
Effects: Callsos.put(os.widen('\n') ), then os.flush().
Returns: os.
The effect of executingcout << endl is to insert a newline character in the output sequence controlled by cout, then synchronize it with any external file with which it might be associated.

我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-11-23 10:34
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
回复 5楼 mmmmmmmmmmmm
ISO/IEC 14882:2003(E) 就是 ISO C++ 2003 修订版,你自己在网上google吧
最新的 ISO C++ 2011 版网上也有,但不知道真假
2012-11-23 12:00
天剑山
Rank: 4
等 级:业余侠客
威 望:3
帖 子:119
专家分:266
注 册:2012-8-3
收藏
得分:0 
...\n 会新缓冲区?不是吧?应该不能够的,C++Primer貌似说过不行的....
2012-11-24 14:22
Krift
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-21
收藏
得分:0 
回复 3楼 mw1159216645
不是吧、、、你搞错了。。
2012-11-25 23:30
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
endl输出一个换行(\n)然后刷新缓冲区。
\n只在C里会刷新缓冲区,C++里不会。

My life is brilliant
2012-11-25 23:45
mfkblue
Rank: 5Rank: 5
等 级:职业侠客
帖 子:472
专家分:343
注 册:2008-12-21
收藏
得分:0 
9楼这个老头的头像,我在另个论坛也看到过,不知道是不是同一个人,发了一个看起超牛的贴子,好像是硬件驱动,C++编程图像啥的,反正看不懂,只觉得牛X。
LZ有潜力,我一般能跳过就跳过,不能跳过的也跳过,哪里会想的这么仔细。

[ 本帖最后由 mfkblue 于 2012-11-26 01:45 编辑 ]
2012-11-26 01:43
快速回复:求助:C++中endl和\n的区别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021441 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved