按指定字符数缩进多行输出
Indenting multiline output by specified number of characters
我希望能够输出多行,并将它们全部缩进指定数量的字符。因此,如果我们输入
int n = 3;
这是要缩进的字符数,然后是字符串
string s = "This is a string.nThis is a string.nThis is a stringn";
和我要输出字符串
cout << s;
我怎样才能使输出的每一行都按n
缩进呢?
一个粗略的解决方法是在要打印的字符串中找到n
的所有实例,并在每次出现"n"
后添加一个包含指定长度的空格字符的字符串。
如果ss
是要打印的字符串,empty
是包含空格字符的字符串,则将ss
中的所有"n"
实例替换为"n" + empty
请参阅如何查找和替换字符串?
根据您的应用程序,您可以将其转换为函数,并尝试重载cout
以在打印任何字符串时调用它(不确定它是否会工作)。
初始化用于存储空格的string
变量,然后通过循环为其添加空格。
int n = 3;
string indents;
for (int c = 0; c < n; c++)
indents += " ";
将所有内容组合在一个字符串中,
string s = "This is a string.n" + indents + "This is a string.n" + indents + "This is a stringn" + indents;
cout << s;
由于您提到n
的出现或位置是未知的,
您可以使用string::find查找n
的第一个出现,然后在n
后面添加空格,使用string::insert then循环,直到找到所有出现的n
,并在其后面添加空格。
int n = 3;
string s = "This is a string.nThis is a string.nThis is a stringn";
// first occurrence
size_t pos = s.find("n");
while (pos != string::npos) {
// insert n spaces after n
s.insert(pos + 1, n, ' ');
// find the next n
pos = s.find("n", pos + 1);
}
cout << s;
输出This is a string.
This is a string.
This is a string.
相关文章:
- clang格式:宏的缩进
- C++setiosflags函数操纵器-未确定的缩进
- VSCode 中带有 C/C++ 扩展名的多行注释缩进错误
- 如何使用c++调整文本文件中代码的缩进?
- 如何在C++中制作 clang 格式的缩进 extern C 块?
- 在 vscode 中使用特定缩进/对齐 C/C++ 自动格式化
- "If Else"语句缩进在C++中是否重要?
- CLion 行注释的不一致自动缩进
- 如何在用户按Enter键时控制wxStyledTextCtrl中的行缩进
- 如何在 QLabel 中将缩进设置为 QImage
- 如何使 clang 格式将所有详细信息命名空间缩进一个
- 是否可以更改 Xcode 缩进注释行的方式
- 用libxml2缩进合并的XML文件
- 精美的C 容器,具有级别的缩进
- 如何在使用clang-format访问修饰符后缩进
- 如何使用Visual Studio轻松缩进标头声明
- 禁止 emacs 中的 c++ 命名空间缩进
- 我怎样才能让 Emacs 用我的代码缩进我的 // 注释
- C++流输出未正确缩进
- 按指定字符数缩进多行输出