您的位置:首页 > 编程语言 > C语言/C++

C++几种格式控制输出输入方法

2013-11-26 18:02 381 查看
(A)用流成员函数进行输入输出格式控制 instance:

#include <iostream>
using namespace std;

int main()
{
cout<<"-----------1-----------"<<endl;
cout.width(10);
cout<<123<<endl;
cout<<"-----------2-----------"<<endl;
cout<<123<<endl;

cout<<"-----------3-----------"<<endl;
cout.fill('&');
cout.width(10);
cout<<123<<endl;

cout<<"-----------4-----------"<<endl;
cout.setf(ios::left);
cout<<123<<endl;

cout<<"-----------5-----------"<<endl;
cout.precision(4);
cout<<123.45678<<endl;

cout<<"-----------6-----------"<<endl;
cout.setf(ios::fixed);
cout<<123.45678<<endl;

cout<<"-----------7-----------"<<endl;
cout.width(15);
cout.unsetf(ios::fixed);
cout.setf(ios::scientific);
cout<<123.45678<<endl;

cout<<"-----------8-----------"<<endl;
int a  = 21;
cout.setf(ios::showbase);
cout.unsetf(ios::dec);
cout.setf(ios::hex);
cout<<a<<endl;
return 0;
}


 说明:状态标志在类ios中被定义成枚举值,所以在引用时要在前面加上“ios::”,在使用setf()函数设置多项标志时,中间应该用或运算符“ | ”分隔开。

(B)使用预定义的操纵符进行输入输出格式控制 instance:

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
cout<<setw(10)<<123<<567<<endl;
cout<<setiosflags(ios::scientific)<<setw(20)<<setfill('$')<<123.4566778<<endl;
return 0;
}


使用ios类中的成员函数进行输入输出格式控制时,每个函数的调用需要写一条语句,而且不能将他们直接嵌入到输入输出语句中去,这样使用很不方便。使用预定义操纵符可以解决不方便的问题。

(C)使用用户自定义的操纵符进行输入输出格式控制 instance:

#include<iostream>
#include<iomanip>
using namespace std;

ostream & output(ostream & stream)
{
stream.setf(ios::left);
stream<<setw(10)<<hex<<setfill('&');
return stream;
}
int main()
{
cout<<123<<endl;
cout<<output<<123;
return 0;
}


这里只提供输出自定义操纵。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: