VC++中,setw()是什么函数?

 我来答
郭欢nb
高粉答主

2019-08-20 · 繁杂信息太多,你要学会辨别
知道答主
回答量:5
采纳率:100%
帮助的人:1172
展开全部

setw(n) 的作用为设置字段宽度为n位。

上述接口与ios_base的格式控制成员是对应的,可以二者配合进行输出格式的精准控制。其中的精度控制默认是6位有效数字,科学计数法中的指数部分e为默认小写。setw设置的宽度如果小于字段宽度会失效 。

如果在一次输出过程中需要混杂多种格式,使用ios_base的成员函数来处理就显得很不方便。STL另提供了iomanip库可以满足这种使用方式。

扩展资料

在ios_base基类的基础上将每一种格式的设置和删除都进行了函数级的同名封装,提供了全局的调用接口函数,支持在运算符“<<”和“>>”上的多次使用,配合ios_base实例的控制。是I/O流控制头文件,就像C里面的格式化输出一样。

输入和输出并不是C++语言中的正式组成成分。C和C++本身都没有为输入和输出提供专门的语句结构。输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的。

参考资料来源:百度百科-iomanip

bhtzu
推荐于2017-09-22 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4237万
展开全部

setw(x)用于流操作符<<输出之中,是对直接跟在<<后的输出数据声明对齐的作用。

该函数不仅用于VC++,这是标准C++运行库函数,多数C++编译器都支持。

setw输出对齐,就是用于控制台下,每个输出的对齐显示,对齐的方法,就是不足指定x个长度时,用默认空格(或指定字符)补齐长度后输出。

示例:

#include <iostream>
#include <iomanip>
using namespace std;
void main(){
//123不足10个长度,后面补7个空格
 cout << setw(10)<< 123 << endl;
//声明右对齐,前面补7个空格
 cout << setw(10) << setiosflags(ios::right) << 123 << endl;
//用*星号而不是空格,来补足10个位置
 cout << setw(10) << setfill('*') << 123 << endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zx1996915
推荐于2017-09-15 · TA获得超过334个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:162万
展开全部
对齐函数
在输出的时候
fout<<setw(x)<<n(x>0)
相对于右对齐x位
比如
cout<<"aa"<<setw(3)<<23;
就是aa 23
cout<<setw(x)<<n(x<0)
相对于左对齐-x位
cout<<"aa"<<setw(-3)<<23<<"aa";
就是aa23 aa
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mislandeer
2010-11-11 · TA获得超过307个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:435万
展开全部
Standard C++ Library Reference

setw
Specifies the width of the display field.

T6 setw(
streamsize _Wide
);

Parameters
_Wide
The width of the display field.

Return Value
The manipulator returns an object that, when extracted from or inserted into the stream str, calls str.width(_Wide), then returns str.

// iomanip_setw.cpp
// compile with: /EHsc
// Defines the entry point for the console application.
//
// Sample use of the following manipulators:
// resetiosflags
// setiosflags
// setbase
// setfill
// setprecision
// setw

#include <iostream>
#include <iomanip>

using namespace std;

const double d1 = 1.23456789;
const double d2 = 12.3456789;
const double d3 = 123.456789;
const double d4 = 1234.56789;
const double d5 = 12345.6789;
const long l1 = 16;
const long l2 = 256;
const long l3 = 1024;
const long l4 = 4096;
const long l5 = 65536;
int base = 10;

void DisplayDefault( )
{
cout << endl <<

参考资料: MSDN

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IntoCode
2010-11-11 · TA获得超过186个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:61.6万
展开全部
指定输出字符宽度。
如:cout<<setw(6)<<"asdf"<<"asdf"<<set(6)<<"asdfghj"endl;
输出: asdfasdfasdfghj(注意前面有两个空格)
说明他只对紧随其后的域起作用,如第二个;而且数据不能充满指定宽度时,系统会自动以空格填充,如第一个;setw不截断数值,如数值超过指定宽度时,会显示全部数值,如第三个。用的时候要包含iomanip头文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式