C++中setfill()是对什么部分起作用的?
来源:百度知道 编辑:UC知道 时间:2024/06/03 05:08:24
我的程序中有这样一段:cout<<setw(6)<<number<<setw(6)<<arrivehour;
cout<<":"<<setfill('0')<<setw(2)<<arrivemin;
cout<<setw(10)<<leavehour;
cout<<":"<<setfill('0')<<setw(2)<<leavemin;
cout<<setw(9)<<type<<setw(9)<<sum<<setw(7)<<rate<<setw(9)<<m;
cout<<setw(9)<<total<<endl;
当我执行以后发现不单setfill()后面紧跟的格被'0'填满了,其他也会被填满,为什么会这样的阿?还有我想问,如果我只想填满紧气候的空格应该怎么做?
能给个详细点的回复吗?我刚学c++。更正一下,上面那个“气候”应该是“跟”
cout<<":"<<setfill('0')<<setw(2)<<arrivemin;
cout<<setw(10)<<leavehour;
cout<<":"<<setfill('0')<<setw(2)<<leavemin;
cout<<setw(9)<<type<<setw(9)<<sum<<setw(7)<<rate<<setw(9)<<m;
cout<<setw(9)<<total<<endl;
当我执行以后发现不单setfill()后面紧跟的格被'0'填满了,其他也会被填满,为什么会这样的阿?还有我想问,如果我只想填满紧气候的空格应该怎么做?
能给个详细点的回复吗?我刚学c++。更正一下,上面那个“气候”应该是“跟”
setw控制符只对后面紧跟的起作用,而setfill控制符一旦设定,就会对后面一直起作用,直到你重新设置。
我给你举个例子,看下面这段程序:
#include <iostream>
using namespace std;
#include <iomanip>
int main()
{
cout<<setw(8)<<setfill('*')<<123<<endl;
cout<<setw(8)<<456<<endl;
return 0;
}
输出结果是:
*****123
*****456
如果只想填满紧跟后面的,必须重新设置:
#include <iostream>
using namespace std;
#include <iomanip>
int main()
{
cout<<setw(8)<<setfill('*')<<123<<endl;
cout<<setw(8)<<setfill(' ')<<456<<endl;
return 0;
}
注意:重新设置的填充符是空格
这样运行结果是:
*****123
空格456
(由于百度知道不允许每行开头有空格,所以我打上两个汉字,实际运行的时候是五个空格加上456)
就达到你的要求了。
关于控制符的作用范围,你可以多查阅一些相关资料,也要自己多试验,这样才能掌握的牢固。
setfill是设置填充填充字符,setw设置输出的宽度,它们的只作用表现在紧接着输入的字符串上。这个宽度是填充后的宽度。所以
cout<<setfill(
C语言中sizeof(double)是
4.19-3/在⊿ABC中a.b,c分别是角A,B,C的对边,
数学4.21-8/ 在⊿ABC中a.b,c分别是角A,B,C的对边,
在ΔABC中,已知三个内角A,B,C所对的边分别是a,b,c
C,N这两种元素在人体中是微量元素吗?对人体有害吗
C语言中对与错??
C语言中循环控制语句中的while(1)中括号里的到底是对谁的判断?
高二数学题 在三角形ABC中,a,b,c分别是角A,B,C的对边,已知a,b,c成等比数列,
在△ABC中,a,b,c,分别是角A,B,C的对边,且a=4,b+c=5
在三角形ABC中,a,b,c分别是角A,B,C的对边,且a,b,c成等比数列