Geo*_*iou 4 c++ iostream manipulators
我不理解下面的表达式中的逻辑,虽然它完美地工作:
cout << left << setw(6) << "hello" << "there." ;
Run Code Online (Sandbox Code Playgroud)
前面的代码正确输出了我的期望: hello there.
我的逻辑是:
cout << "hello" << left << setw(6) << "there.";
Run Code Online (Sandbox Code Playgroud)
但是它输出了一些意想不到的东西:hellothere.我的期望是"有"的第一个字符"t"在输出区域的第7列之后是6列宽度之后.换句话说,我的概念是"left setw(n)"应该表示"输出区域中第一个的n列(空格)",就像一些带有编号列的数据表格一样,便于查找数据.
你能解释一下吗?
在setw输入输出流机器人适用于下一个是输出项目,仅该项目.因此在第一个片段中,"hello"使用"left,field width 6"进行修改,从而产生以下输出:
|h|e|l|l|o| |
Run Code Online (Sandbox Code Playgroud)
默认情况下,填充字符是space(' '),这是没有更多输入数据且尚未达到字段宽度时的输出.
在第二个片段中,仅"there."操作项目.由于它已经包含六个输出字符,因此操纵器无效.
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |