首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人知道endl( cout )和cout << endl之间的区别吗?

有人知道endl( cout )和cout << endl之间的区别吗?
EN

Stack Overflow用户
提问于 2012-03-04 23:50:50
回答 4查看 328关注 0票数 4

我以为它们是一样的,但是当我给一个在线法官发送一个代码(用endl(cout))时,它给了我一个“错误答案”的判决,然后我试着用cout << endl发送另一个代码,法官接受了这个代码!有人知道这些命令之间的区别吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-04 23:58:22

据我所知没有。

std::endl是一个接受流并返回流的函数:

代码语言:javascript
复制
ostream& endl ( ostream& os );

当您将其应用于std::cout时,它只会立即应用该函数。

另一方面,std::basic_ostream使用以下签名重载operator<<

代码语言:javascript
复制
template <typename C, typename T>
basic_ostream<C,T>& operator<<(basic_ostream<C,T>& (*pf)(basic_ostream<C,T>&));

它也将立即应用该函数。

因此,从技术上讲,这没有区别,即使流std::cout << std::endl更惯用。可能是法官机器人过于简单化了,而且没有意识到这一点。

票数 3
EN

Stack Overflow用户

发布于 2012-03-04 23:56:54

唯一的区别是,endl(cout)被视为全局函数,而在cout << endl中,endl被视为操纵器。但它们具有相同的效果。

票数 2
EN

Stack Overflow用户

发布于 2012-03-04 23:58:08

这两种形式在行为上没有区别。两者都引用相同的endl函数,该函数可用作操纵器(cout << endl)或自由函数(endl(cout))。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9556328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档