C++ 按指定的字符数缩进多行输出

C++ 按指定的字符数缩进多行输出,c++,C++,我希望能够输出多行,并将它们全部缩进指定数量的字符。所以,如果我们有 int n = 3; 这是要缩进的字符数,然后是字符串 string s = "This is a string.\nThis is a string.\nThis is a string\n"; cout << s; 然后我要输出字符串 string s = "This is a string.\nThis is a string.\nThis is a string\n"; cout <<

我希望能够输出多行,并将它们全部缩进指定数量的字符。所以,如果我们有

int n = 3;
这是要缩进的字符数,然后是字符串

string s = "This is a string.\nThis is a string.\nThis is a string\n";
cout << s;
然后我要输出字符串

string s = "This is a string.\nThis is a string.\nThis is a string\n";
cout << s;

cout一个粗略的解决方法是在要打印的字符串中查找
\n
的所有实例,并在每次出现
“\n”
后添加一个包含指定长度空格字符的字符串

如果
ss
是要打印的字符串,而
empty
是包含空格字符的字符串,则将
ss
“\n”
的所有实例替换为
“\n”+empty

有关执行此操作的代码,请参阅


根据您的应用程序,您可以将其转换为函数,并尝试在打印任何字符串时重载
cout
以调用它(不确定它是否能工作)。

初始化将存储空格的
字符串
变量,然后通过循环向其添加空格

int n = 3;
string indents;

for (int c = 0; c < n; c++)
    indents += " ";

cout我很高兴看到答案……基本上,goas是一个混乱的缓冲区和\n+n空格的取代基…@buttifulbutteffly我希望有一个更简单的解决方案,但好吧,我会研究它。所以我已经做得够多了,我使用了一个类似于
字符串空格(n,,)的空格的想法
但问题是我不知道换行符在s中的位置,或者根本不知道是否有换行符,所以我猜我需要搜索并找到所有字符的索引,\n并附加空格。如果是这样,您可以查看此链接:这正是我所想和寻找的,但是关于代码,
s.replace(s.find(“\n”)、2、“\n”+空格)
会替换
\n
的所有实例还是只替换第一个实例?我在你分享的链接中并没有得到澄清。我认为最重要的答案只会取代一次。如果需要,您可以查看第二个答案中的Boost库。否则,请参阅此问题:
This is a string.
   This is a string.
   This is a string.