C++setiosflags函数操纵器-未确定的缩进

C++ setiosflags function manipulator - undetermined indentation

本文关键字:未确定 缩进 函数 操纵 C++setiosflags      更新时间:2023-10-16

我正在学习C++,主要研究cout操纵器函数。

通过运行以下代码,我在包含Gauthier的第二行中得到了一个缩进。

#include <iostream>
#include <iomanip>
int main()
{
std::cout << std::setw(10) << std::setiosflags(std::ios::left)
<< "Mathieun"
<< "Gauthiern"
<< "Pauln"
<< "Louisn"
<< "Pierren"
<< std::endl;
return 0;
}

有人能向我解释一下发生了什么事吗?为什么Gauthier缩进而其他名称不缩进?

Mathieu
Gauthier
Paul
Louis
Pierre
Program ended with exit code: 0

std::ios::left告诉在右边添加填充字符,即在第一个字符串中添加几个字符,因此"Mathieun"";变成";"Mathieun "。末尾有换行符('n'(,所以添加的空格将移动到下一行(Gauthier(。所以它不是第二行的缩进,那个些是从第一行开始的尾随字符。