4

我正在学习 C++,我专注于cout操纵器功能。

通过运行以下代码,我在包含Gauthier.

#include <iostream>
#include <iomanip>

int main()
{
    std::cout << std::setw(10) << std::setiosflags(std::ios::left)
        << "Mathieu\n"
        << "Gauthier\n"
        << "Paul\n"
        << "Louis\n"
        << "Pierre\n"
        << std::endl;
    return 0;
}

有人可以向我解释发生了什么吗?为什么Gauthier缩进而其他名称不缩进?

Mathieu
  Gauthier
Paul
Louis
Pierre

Program ended with exit code: 0
4

1 回答 1

4

std::ios::left告诉在右边添加填充字符,即它向第一个字符串添加几个字符,所以"Mathieu\n""becomes" "Mathieu\n "。末尾有换行符('\n'),因此添加的空格将移至下一行(Gauthier)。所以它不是第二行的缩进,那些是第一行的尾随字符。

于 2020-07-10T14:04:53.297 回答