c++中的'\n'和endl有什么区别吗?

c++中的'\n'和endl有什么区别吗?貌似endl好点....

 对,建议用endl
因为在不同环境下,作为换行符的标准不一
windows是\r\n
unix/linux是\r
用endl可以保证程序的通用性
 对,建议用endl
因为在不同环境下,作为换行符的标准不一
windows是\r\n
unix/linux是\n (修正下)
用endl可以保证程序的通用性

\n只是换行,endl还可以把输出放入缓冲区。

还有昨天的问题,我提到历史包袱,但是没有具体说。
我补充下。
比如
int arr = (int *)malloc(100 * 4);

int arr = (int *)malloc(100 * sizeof(int));
我们为什么要用sizeof,因为C++的int不一定是4个字节。但是很多时候,因为长时间C++编译器都把int视作4个字节,以至于很多时候一些人习惯写第一个程序。
但是这种不规范的代码遇上编译器的变化就糟糕了,比如int变成64位,那么缓冲区就不够了。

但是有时候呢,情况恰恰相反,一开始我们觉得什么都会变化,以至于什么都要用变量/宏去定义

 int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)

这恐怕是各种编程语言中最繁琐和难看的一种了。

APIENTRY到底是个啥,HINSTANCE呢?LPCTSTR呢?一个C++程序里到处都是这种怪异而难看的东西。

C#的程序入口:

 void main(string[] args)

"\n"表示内容为一个回车符的字符串。
std::endl输出一个换行符,并立即刷新缓冲区。

在c++中,换行直接使用endl就行。

都一个意思,转行,不过一般都是用endl比较多,像我们这学了一年的都是用endl。