我可以在C++中删除 ( cout<< " " <<endl ) 中的"endl"吗?

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

本文关键字:lt endl 中的 C++ cout 我可以 删除      更新时间:2023-10-16

我是C++的初学者,我的问题是我能删除endl吗?cout末尾的那个,比如:

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。您还可以在字符串文字的末尾使用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."<<;。。。。?这是错误的:

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