gpt4 book ai didi

c++ - iostreams 操纵器顺序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:35:09 24 4
gpt4 key购买 nike

我不理解以下表达式中的逻辑,尽管它工作得很好:

cout << left << setw(6) << "hello" << "there." ; 

前面的代码正确输出了我所期望的:你好。

我的逻辑是:

cout << "hello" << left << setw(6) << "there."; 

但它输出了一些意想不到的东西:hellothere. 我的期望是“there”的第一个字符“t”位于输出区域的第 7 列,即 6 列宽度之后。换句话说,我的概念是“left setw(n)”应该表示“从输出区域的第一列开始的 n 列(空格)”,就像一些带有编号列的数据形式,以便于查找数据。

你能解释一下吗?

最佳答案

setw iostreams 操纵符适用于输出的下一个 项目,并且仅适用于该项目。因此,在第一个片段中,“hello” 被修改为“left, field width 6”,从而产生以下输出:

|h|e|l|l|o| |

填充字符默认为空格(' '),这是在没有更多输入数据且尚未达到字段宽度时输出的内容。

在第二个片段中,只有项目“there.” 被操作。由于它已经包含六个输出字符,因此操纵器无效。

关于c++ - iostreams 操纵器顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36743617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com