• 如果您想对本站表示支持,请随手点击一下广告即可~
  • 本站致力于提供原创、优秀的技术文章~
  • 有任何疑问或建议 均可以在站点右侧栏处 通过各种方式联系站长哦~
  • C++的两种换行符区别

    C/C++ EXP 123阅读 0评论

    当我们在C++执行一个输出语句时,在输出语句最后可以使用 std::endl\n 建立一个新行。

    但这两种换行方式对程序有不同的影响。


    std::endl

    它在建立一个新的行的同时,还会自动刷新输出缓冲区flush( )。


    /n

    它仅仅是建立一个新的行,并不会刷新输出缓冲区。


    实例比较

    下面看一段小程序:

    这个程序的输出结果为;

    从表面上看 std::endl 和 \n 是没有区别的,因为刷新输出缓冲区属于流的内部处理,无法显性表示。而且由于程序正常结束时会自动关闭流,这两者的区别就更难被体现出来了。

    但是如果程序异常结束时就会看出区别所在:

    • \n不刷新流,程序异常结束时文件会不完整
    • std::endl会刷新流,即使程序异常结束文件也会保持完整

    一般而言 std::endl 的功能是比 \n 要优越的,在写C++程序推荐使用。


    总结

    std::endl = flush + \n

    比较 std::endl \n
    本质 是一个指针函数,cout会调用其所指的函数 是一个转义字符
    适用范围 源于C++标准库,是类成员,只能用于C++ 可用于C和C++
    功能 换行后会自动刷新输出缓冲区 换行后不刷新缓冲区,可能还需要自己处理宽字符等事情

    转载请注明:EXP 技术分享博客 » C++的两种换行符区别

    喜欢 (0) 分享 (0)
    发表我的评论
    取消评论

    表情

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址