\n和endl的区别是什么?

aquaa 2000-01-29 07:14:00
如题! 谢谢!
最好能给我发信回答。
zh-jx@263.net
...全文
1918 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
OUYAN 2000-07-18
  • 打赏
  • 举报
回复
基本差不多,几呼一样的。
lyzcom 2000-07-12
  • 打赏
  • 举报
回复
一般的情况下,\n,endl是没有什么区别的。但是在不同的操作系统下,endl比\n好。
另外,endl会在输出换行后刷新流,但是\n不会。
gun2 2000-03-05
  • 打赏
  • 举报
回复
打开你的编译器include目录中的ostream.h文件,你就回看到类似的如下代码:
... ...
... endl(ostream& os) { os << '\n' << flush; }
... ...
也就是说,endl比'\n'要多了一个“刷新”流里的缓冲的flush操作。
以文件输出流(ofstream)为例:当流的缓冲区未满时,写入'\n'的是不会马上写到文件里的,但执行endl会“强行”把缓冲区的内容写入文件中。所以,endl不仅换行,还刷新流缓冲。

iostream在这里耍了个小技巧,重载<<操作符"<<((ostream& *f)(ostream&))",使得当你执行"<< endl"时,其实调用了endl()函数。

如果你想深入了解iostream类的实现,可以看看其源文件,相信会对你的编程能力有较大的提高。或者阅读the c++ programming language的iostream(好象是第八章)一章。
另外有本专门将iostream的书也不错,你如果要名字的话请给我email.
p.s.
我很欣赏你的细心,如果你时刻保持这种精神,很快就会超越自我的(虽然这是无止境的)。不要过多的沉迷于互连网,多花些时间看看书,陪陪家里人吧!给你,也给我。

netsky 2000-02-01
  • 打赏
  • 举报
回复
endl在C++中使用时一般用在ostream的子类中,使用方法如

1 cout << "It's a wonderful life!" << endl;

这时除在标准输出打印出It's a wonderful life!外, cout类还要将自己的
缓冲区清空,类似C的fflush( stdout ),而

2 cout << "It's a wonderful life!" << "\n";

却不会有这一动作, 这样在某些情况下语句2将不能打印出要求内容,因为它们还在
cout的缓冲区中.

xubin_sh 2000-02-01
  • 打赏
  • 举报
回复
\n是新行,在unix中换行是\n,而dos/win下面是\r\n
用endl写的程序,就有了可移植性,在unix下他是\n,在dos/win下就是\r\n
feng 2000-01-29
  • 打赏
  • 举报
回复
\n是C中的控制字符,表示换行,可以作为一个字符来进行操作(等于,不等于的比较)。endl是C++中行结束符,只能用于输出流中。

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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