1. 流控制符总结std::setw 是唯一的“纯一次性”宽度控制符其他所有格式操纵符基本都是持久的有两类操作符无参 vs 有参操纵符实现原理说明如下无参操纵符以 std::fixed 为例// 标准库中的定义简化std::ios_basefixed(std::ios_basestr){str.setf(std::ios_base::fixed,std::ios_base::floatfield);returnstr;}// 使用方式std::coutstd::fixed;// 实际执行std::fixed(std::cout) → 修改流的格式标志有参操纵符以 std::setw 为例// 标准库中的定义简化struct_Setw{int_M_n;_Setw(intn):_M_n(n){}};_Setwsetw(intn){return_Setw(n);// 返回临时对象}// 流操作符重载std::ostreamoperator(std::ostreamos,const_Setwmanip){os.width(manip._M_n);// 设置宽度一次性returnos;}// 使用方式std::coutstd::setw(10);// 实际执行创建临时对象 → 调用重载的 operator → 设置宽度2. 举例// 每次需要宽度时显式写明std::coutstd::setw(8)std::leftnamestd::setw(4)age\n;// 即使 left 是持久的setw 仍需每次设置3. 恢复默认状态避免污染后续输出// 保存当前状态std::ios::fmtflags oldFlagsstd::cout.flags();// 修改格式...std::coutstd::fixedstd::setprecision(2)value;// 恢复std::cout.flags(oldFlags);