endl是什么类型啊

lunarfan 2008-11-11 08:55:46

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
int val1, val2;
int lower, upper;

cin >> val1 >> val2;
if (val1 <= val2)
{
lower = val1;
upper = val2;
}
else
{
lower = val2;
upper = val1;
}

int count = 1;
cout << "these number of " << lower
<<" to " << upper << " are: " << endl;
while (lower <= upper)
{
//这里'\n'改成endl就 不对了明显是类型产生二义性。问endl是个什么类型
cout << setw(2) << lower << ((count % 10 != 0 ) ? (' ') : ('\n'));
++lower;
++count;
}
cout << endl;

return 0;
}
...全文
241 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lunarfan 2008-11-12
  • 打赏
  • 举报
回复
所以' ' 与 '\n'类型一致,而' ' 与 endl 类型不一致所以出错了。
所以我才问endl是什么类型啊。呵呵好多人都没理解就回复。没给分
R9R9R9 2008-11-11
  • 打赏
  • 举报
回复
我决的这里出现问题是由于“可能”跟 ? :这个条件运算符有关系,可能这个? : 对左右两边的表达式要些什么规定,例如,类型要一致之类的。
因为连这个 cout <<( true ? "hello" : ' ') <<endl; 都不行。

所以' ' 与 '\n'类型一致,而' ' 与 endl 类型不一致所以出错了。

当然这些都是我猜的,可能有其他的原因。
Longinc 2008-11-11
  • 打赏
  • 举报
回复
C++的一个功能类似于\n
liumingrong 2008-11-11
  • 打赏
  • 举报
回复
所以你可以这要写,endl(cout);
[Quote=引用 5 楼 liumingrong 的回复:]
通常endl是一个函数模板,它的功能是输出换行并flush缓存

C/C++ code
_CRTIMP inline basic_ostream<wchar_t, char_traits<wchar_t> >&
__cdecl endl(basic_ostream<wchar_t,
char_traits<wchar_t> >& _O)
{_O.put('\n');
_O.flush();
return (_O); }
[/Quote]
WingForce 2008-11-11
  • 打赏
  • 举报
回复
inline basic_ostream<char, char_traits<char> >& endl(basic_ostream<char, char_traits<char> >& _Ostr);

大体如此吧。。。
原因是,因为basic_ostream的operator<<存在:
_T& operator<<(_T& (*_Pfn)(_T&));


liumingrong 2008-11-11
  • 打赏
  • 举报
回复
通常endl是一个函数模板,它的功能是输出换行并flush缓存

_CRTIMP inline basic_ostream<wchar_t, char_traits<wchar_t> >&
__cdecl endl(basic_ostream<wchar_t,
char_traits<wchar_t> >& _O)
{_O.put('\n');
_O.flush();
return (_O); }
Aizz 2008-11-11
  • 打赏
  • 举报
回复
endl: end of line,行结束符;同时是控制符,强制将缓冲区中的数据写到流中。
  • 打赏
  • 举报
回复
endl是一个函数
lunarfan 2008-11-11
  • 打赏
  • 举报
回复
。。。没问他的功能
hzc191025 2008-11-11
  • 打赏
  • 举报
回复
This manipulator, when inserted into an output stream, inserts a newline character and then flushes the buffer.

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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