我们如何以原生和优雅的方式在 c++ 中打印多行内容?[复制]

How do we print multi-line content in c++ in an native and elegant way? [duplicate]

提问人:Benny Frog 提问时间:6/29/2023 更新时间:6/29/2023 访问量:43

问:

我正在尝试像练习一样打印这样的东西:

  *
 ***
*****
 ***
  *

我一直在使用 c++ 在单独的语句中打印每一行。它可以很好地通过测试。

但是,我在 python 中了解到我们可以做这样的事情:

s = """
  *
 ***
*****
 ***
  *
"""
print(s)

它巧妙地完成了这项工作。 所以我一直在想:在 c++ 中是否有优雅的等价物? 我使用的搜索都需要使用或作为换行符,我不想这样做。\nstd::endl

C++ IO

评论

1赞 463035818_is_not_an_ai 6/29/2023
重复是一个旧问题,因此最新的答案不是被接受或投票最高的答案
0赞 463035818_is_not_an_ai 6/29/2023
fwiw 这种练习的重点是练习循环。我建议不要使用原始字符串文字,而是使用需要字符和次数重复的构造函数,这在此类练习中可以有很大帮助,而无需避免所有循环std::string
0赞 Jesper Juhl 6/29/2023
您可以使用原始字符串文本

答:

0赞 Pepijn Kramer 6/29/2023 #1

只需使用多行字符串文字,如下所示:

#include <iostream>

const char *s= "  *  \n"
               " *** \n"
               "*****\n"
               " *** \n"
               "  *  \n";

int main()
{
    std::cout << s;
    return 0;
}

评论

0赞 Pepijn Kramer 6/30/2023
注意:现在C++我更喜欢使用 std::string_view。