在c++学习笔记(三)中相信大家一定对以下这句代码有所疑惑,所以本篇会详细的介绍一下c++中"\n"和endl的区别是什么,而cout流的相关知识则会在后面介绍流操作的时候详细介绍。
cout << "Hello World" << endl;
有过代码编程经验的朋友一定十分清楚,字符串输出完毕之后我们通常都会换行,使用"\n"进行换行操作,c语言也有着printf的格式化输出,所以c++也继承了这一点,你仍然可以使用printf来输出。
"\n"在计算机程序中代表换行并且光标沿袭上文,相当于你按下回车并且按下制表符键,与上文格式一致。"\r"则在linux系统中使用更为频繁,代表换行并且光标置于行首,相当于按下回车键。
那么std::endl 是流操作子,输出的作用和输出 "\n" 类似,但可能略有区别。
std::endl 输出一个换行符,并立即刷新缓冲区,使得栈中的数据刷新一次,并调用了flush 函数,刷新缓冲区,把缓冲区里的数据写入文件或屏幕.。
例如:
std::cout << std::endl;
相当于:
std::cout << '\n' << std::flush;
或者
std::cout << '\n';
std::fflush(stdout);