我可以在C++中删除 ( cout<< " " <<endl ) 中的"endl"吗?
can I Remove "endl" in ( cout<<" "<<endl ) in C++?
我是C++的初学者,我的问题是我能删除endl
吗?cout
末尾的那个,比如:
cout<<" "<<endl;
我不想回到新线。如果我不能移除它,我该怎么办?
房间里的大象:从cout
中移除endl
。
但如果您没有该代码,您可以尝试"\033[F",如果您的终端支持它,它会将您移动到前一行。
另一种可能性是使用rdbuf
将cout
缓冲区重定向到您控制的ostream
。您可以(i)重定向,(ii)用新行调用写入错误cout
的函数,(iii)检查ostream
并写入原始缓冲区,这次省略endl
。完成后,将所有内容都切换回来。
当然,您不需要每次使用<<
都使用std::endl
。例如,打印元素之间有空格的矢量的一种简单方法如下:
std::vector<int> foo = {1,2,3,4,5};
for (auto e : foo)
std::cout << e << " ";
在这里,我们从不使用endl
。您还可以在字符串文字的末尾使用n
,这也会在缓冲区中放入一行换行符。
std::cout << "testn";
std::cout << "this will be on a new line";
请注意,我没有在最后一个cout<<
中放入换行符,因此如果有任何输出,它将在"行"中的"e"之后立即开始。
是的,您可以删除endl。它是<lt;流运算符有很多。如果不包括它,则不会输出新的回车/换行字符,因此文本将出现在输出中的同一行(可能是控制台)。
例如
cout << "Hello, World" << endl;
将变成:
cout << "Hello, World";
或者用另一种方式表达你的观点:
cout << "Hello,";
cout << " World";
还有很多其他的例子,这里有一个供初学者使用:http://www.cplusplus.com/doc/tutorial/basic_io/
cout<<"Your message here.";
就这么简单。你是不是想做。。。
cout<<"Your message here."<<;
。。。。?这是错误的:
<<
运算符表示在""
部分之后出现了一些内容。在这种情况下你没有。
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- 什么是现实中的"endl"(或任何输出操纵器)?它是如何实现的,它如何与操作员<<一起工
- std::endl,在 Python 中是否有等价物?(返回 + 刷新)
- 运算符 << 操作加载的 API for std::endl?
- 我在 C++ 中创建了一个函数来递归反转字符串,但是之后如何使功能打印一个 endl?
- 可变参数模板函数:调用没有匹配函数,std::endl
- 如何显式调用运算符<<
- 模板推导不适用于 std::endl?
- std::cout << glGetString(GL_RENDER) << std::endl;抛出错误但不GL_Renderer或GL_Verision,我不知道为什么?
- std::flush 不起作用,而 std::endl 可以
- "cout<<count<<endl;"没有打印任何内容
- 模板操作员&lt;未打电话
- C / CUDA中的模板方法是3个角括号(&lt;&lt;&lt;)
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- 错误:调用"std::vector<:vector<int>>::p ush_back(std::vector<std::__cxx11::basic_string<
- 使用带有重载<<endl上的运算符
- 将std::endl传递给std::operator<<