繁体   English   中英

我可以删除 (cout<<" "<

[英]can I Remove "endl" in ( cout<<" "<<endl ) in C++?

我是 C++ 的初学者,我的问题是我可以删除cout末尾的endl ,例如:

cout<<" "<<endl;

我不想回到新行。 如果我无法删除它,我该怎么办?

房间里的大象:从cout删除endl

但如果您不拥有该代码,您可以尝试“\\033[F”,如果您的终端支持它,它会将您移到上一行。

另一种可能性是使用rdbufcout缓冲区重定向到您控制的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 你 cout 也只是在字符串文字的末尾使用\\n ,这也会在缓冲区中放置一个换行符。

std::cout << "test\n";
std::cout << "this will be on a new line";

请注意,我没有在最后一个cout<<放置换行符,因此如果还有输出,它将在“line”中的“e”之后立即开始。

是的,您可以删除 endl。 它是<< 流操作符的可选参数,其中有很多。 如果不包含它,则不会输出新的回车符/换行符,因此文本将出现在输出的同一行上(大概是控制台)。

例如

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."<<; ……? 这是错误的:

<<运算符表示在""部分之后出现某些内容。 在这种情况下你没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM